https://wiki.mozilla.org/api.php?action=feedcontributions&user=Mounir.lamouri&feedformat=atom
MozillaWiki - User contributions [en]
2024-03-29T08:28:25Z
User contributions
MediaWiki 1.27.4
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=676348
WebAPI/WebActivities
2013-07-15T17:06:07Z
<p>Mounir.lamouri: Undo revision 675973 by Thinker (talk)</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Activity names ===<br />
<br />
Basic activities will have simple names like ''edit'', ''view'', ''pick'' or ''share'' (this is non-exhaustive). A set of basic activities should be defined in the initial specification. Defining will imply specifying how ''data'' should be structured to be considered valid and how the return value (if any) should be structured too.<br />
<br />
Any other specification will be able to create new activities. For example, a Messaging specification might add 'send-sms'.<br />
<br />
Any application will be able to create new activities. Any application is able to register itself as handling the activity ''foobar'' and any application is able to start the activity ''foobar''.<br><br />
However, to prevent naming collision, we recommend such proprietary naming to be prefixed with an URL. For example: ''example.org/foobar'' or ''org.example.foobar'' (doesn't matter that much).<br />
<br />
=== Handling an activiy ===<br />
<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityRequestHandler'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if neither ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp. An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
=== Declarative registration ===<br />
<br />
Open Web App Manifest should include a way to register activities declaratively. The format would look like this:<br />
"activities": {<br />
"share": {<br />
"filters": {<br />
type: ["image/png", "image/gif"],<br />
}<br />
"href": "foo.html",<br />
"disposition": "window"<br />
}<br />
}<br />
<br />
For non-installed applications, this API doesn't yet define how to do a declarative registration. However, it doesn't sound very useful for the moment to have such mechanism. However, if it had to be added, adding a new element into the <head> would seem like the most appropriate solution (or using an already existing one). The only advantage of adding a new element inside the <body> is that we don't have to worry about the <head> parsing issues.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onerror = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
Pick a png image and return what the user had picked:<br />
var r = navigator.registerActivityHandler({ name: "pick", disposition: "inline",<br />
filters: { type: "image/png" }, returnValue: true});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
Open Web Apps can alternatively register in their webapp manifests.<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=655829
WebAPI/PlannedWork
2013-05-14T17:13:55Z
<p>Mounir.lamouri: </p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
=== Owned ===<br />
* Future; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]<br />
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101]<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv<br />
* Storage: temporary/permanent storage for IDB, owner: janv<br />
* Storage: IDB in workers, owner, janv<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir<br />
* [http://github.com/mounirlamouri/storage.js storage.js], owner: mounir<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API], owner: mounir and others (Gaia and B2G)<br />
<br />
=== Need implementer ===<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], design: mounir<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others<br />
* Improve appcache, design: sicking<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir<br />
<br />
=== Need design ===<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
* navigator.language change event (W3C HTML Bug)<br />
* API for generic LED actuators (usually camera LED, though some phones include additional ones) <br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged ==</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=655823
WebAPI/PlannedWork
2013-05-14T17:08:17Z
<p>Mounir.lamouri: /* Untriaged / open questions */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
=== Owned ===<br />
* Future; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]<br />
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101]<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv<br />
* Storage: temporary/permanent storage for IDB, owner: janv<br />
* Storage: IDB in workers, owner, janv<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir<br />
* [http://github.com/mounirlamouri/storage.js storage.js], owner: mounir<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API], owner: mounir and others (Gaia and B2G)<br />
<br />
=== Need implementer ===<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], design: mounir<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others<br />
* Improve appcache, design: sicking<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir<br />
<br />
=== Need design ===<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
* navigator.language change event (W3C HTML Bug)<br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged ==<br />
<br />
* API for generic LED actuators (usually camera LED, though some phones include additional ones)</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=655822
WebAPI/PlannedWork
2013-05-14T17:07:55Z
<p>Mounir.lamouri: /* P2 */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
=== Owned ===<br />
* Future; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]<br />
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101]<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv<br />
* Storage: temporary/permanent storage for IDB, owner: janv<br />
* Storage: IDB in workers, owner, janv<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir<br />
* [http://github.com/mounirlamouri/storage.js storage.js], owner: mounir<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API], owner: mounir and others (Gaia and B2G)<br />
<br />
=== Need implementer ===<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], design: mounir<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others<br />
* Improve appcache, design: sicking<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir<br />
<br />
=== Need design ===<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
* navigator.language change event (W3C HTML Bug)<br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* navigator.language change event ([https://www.w3.org/Bugs/Public/show_bug.cgi?id=21289 W3C HTML Bug])<br />
* API for generic LED actuators (usually camera LED, though some phones include additional ones)</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=655821
WebAPI/PlannedWork
2013-05-14T17:07:02Z
<p>Mounir.lamouri: /* Untriaged / open questions */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
=== Owned ===<br />
* Future; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]<br />
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101]<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv<br />
* Storage: temporary/permanent storage for IDB, owner: janv<br />
* Storage: IDB in workers, owner, janv<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir<br />
* [http://github.com/mounirlamouri/storage.js storage.js], owner: mounir<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API], owner: mounir and others (Gaia and B2G)<br />
<br />
=== Need implementer ===<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], design: mounir<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others<br />
* Improve appcache, design: sicking<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir<br />
<br />
=== Need design ===<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* navigator.language change event ([https://www.w3.org/Bugs/Public/show_bug.cgi?id=21289 W3C HTML Bug])<br />
* API for generic LED actuators (usually camera LED, though some phones include additional ones)</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=654505
WebAPI/PlannedWork
2013-05-10T16:20:24Z
<p>Mounir.lamouri: /* P1 */ make this list more useful (owners, designers, to be taken)</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
=== Owned ===<br />
* Future; owners: baku, mounir and annevk, [https://bugzilla.mozilla.org/show_bug.cgi?id=839064 bug 839064]<br />
* AudioChannel API; owners: baku and bent, [https://bugzilla.mozilla.org/show_bug.cgi?id=853101 bug 853101]<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager, owner: janv<br />
* Storage: temporary/permanent storage for IDB, owner: janv<br />
* Storage: IDB in workers, owner, janv<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html, owner: mounir<br />
* [http://github.com/mounirlamouri/storage.js storage.js], owner: mounir<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API], owner: mounir and others (Gaia and B2G)<br />
<br />
=== Need implementer ===<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication], design: mounir<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store], design: mounir, sicking and others<br />
* Improve appcache, design: sicking<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar), design: sicking, marcosc, mounir<br />
<br />
=== Need design ===<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation<br />
* navigator.language change event ([https://www.w3.org/Bugs/Public/show_bug.cgi?id=21289 W3C HTML Bug])<br />
* API for generic LED actuators (usually camera LED, though some phones include additional ones)</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=653141
WebAPI/PlannedWork
2013-05-07T22:13:45Z
<p>Mounir.lamouri: triaged items</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== P1 ==<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
* System Messages on Desktop<br />
* AudioManager (baku)<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
<br />
* Storage: move appcache, cookies(?) and localStorage to centralized quota manager<br />
* Storage: temporary/permanent storage for IDB<br />
* Storage: IDB in workers<br />
<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== P2 ==<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* Storage: Sandboxed Filesystem<br />
<br />
== P3 ==<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
* Speech API<br />
* Storage: Quota API<br />
* Storage: Data-moving (temp -> perm)<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???) (smaug?)<br />
<br />
== Side track ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650161
WebAPI/PlannedWork
2013-04-28T21:55:14Z
<p>Mounir.lamouri: /* Fix/maintain current Firefox OS APIs */ add ArchiveReader.js</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
<br />
* System Messages on Desktop<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
* ArchiveReader prototype in Javascript<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???)<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650160
WebAPI/PlannedWork
2013-04-28T21:54:35Z
<p>Mounir.lamouri: /* General DOM stuff */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
<br />
* System Messages on Desktop<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
* Keyboard layouts and gaming: KeyboardEvent.code (bug 865649) and KeyboardEvent.locale (bug ???)<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650159
WebAPI/PlannedWork
2013-04-28T21:38:45Z
<p>Mounir.lamouri: /* Fix/maintain current Firefox OS APIs */ add system messages and web activities desktop implementations</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
<br />
* System Messages on Desktop<br />
<br />
* Web Activities on Desktop<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650158
WebAPI/PlannedWork
2013-04-28T21:37:30Z
<p>Mounir.lamouri: /* New Firefox OS APIs */ add Battery API v2</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
<br />
* Battery API v2 (temperature, voltage, etc.); the real world use cases are not clear but we might need that in FxOS soon enough and we should be ready<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650156
WebAPI/PlannedWork
2013-04-28T21:35:51Z
<p>Mounir.lamouri: /* New Firefox OS APIs */ add IME/Keyboard API</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/KeboardIME IME/Keyboard API]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650155
WebAPI/PlannedWork
2013-04-28T21:29:43Z
<p>Mounir.lamouri: /* Standardization */ adds inputmode</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
* inputmode: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2013-February/038914.html<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650154
WebAPI/PlannedWork
2013-04-28T21:27:56Z
<p>Mounir.lamouri: /* General DOM stuff */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API]<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650148
WebAPI/PlannedWork
2013-04-28T21:24:15Z
<p>Mounir.lamouri: /* General DOM stuff */ some comments</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API] (sicking)<br />
* clean up rich text editing<br />
** mounir: shouldn't that be owned by the DOM team?<br />
* Speech API<br />
** mounir: isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650147
WebAPI/PlannedWork
2013-04-28T21:23:30Z
<p>Mounir.lamouri: /* Fix/maintain current Firefox OS APIs */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** mounir: is there any more work on this?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API] (sicking)<br />
* clean up rich text editing<br />
* Speech API<br />
** isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650146
WebAPI/PlannedWork
2013-04-28T21:23:02Z
<p>Mounir.lamouri: /* New Firefox OS APIs */</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
* Sync API (sicking), eg. keep GMail synchronized<br />
** mounir: do we really need that in the short term?<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** anything else to do?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API] (sicking)<br />
* clean up rich text editing<br />
* Speech API<br />
** isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650144
WebAPI/PlannedWork
2013-04-28T21:21:56Z
<p>Mounir.lamouri: /* API standardizations */ add two items</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* Sync API (sicking)<br />
** ex. keep GMail synchronized<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** anything else to do?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== Standardization ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
* Add a way to make the manifest file discoverable (via a manifest attribute or something similar)<br />
<br />
* Getting back notifications after the page has been killed. Some links: [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-March/039310.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039329.html] [http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2013-April/039355.html]<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API] (sicking)<br />
* clean up rich text editing<br />
* Speech API<br />
** isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/PlannedWork&diff=650141
WebAPI/PlannedWork
2013-04-28T21:11:53Z
<p>Mounir.lamouri: try to organize a bit this list</p>
<hr />
<div><div style="margin: 1em 0px; border: 2px solid orange; padding: 1em; background-color: orange; text-align: center;">'''NOTE'''<br />
<div style="font-size:x-small">This is a backlog of ideas for potential future work. Nothing is committed until it lands in a release :) .</div></div><br />
<br />
== New Firefox OS APIs ==<br />
<br />
* Sync API (sicking)<br />
** ex. keep GMail synchronized<br />
* [https://wiki.mozilla.org/WebAPI/Inter_App_Communication Inter App Communication]<br />
* [https://wiki.mozilla.org/WebAPI/DataStore Data Store]<br />
<br />
== Fix/maintain current Firefox OS APIs ==<br />
<br />
* Fix browser API (jlebar)<br />
** don't use iframe element<br />
** due to ^ can't load browser API when element is created<br />
** may want to rewrite in C++<br />
** Improve security checks<br />
** Support "nested child processes"<br />
* Fix FM Radio API (jlebar)<br />
** doesn't behave sanely with multiple windows attempting to access it<br />
** will likely require major changes<br />
* AudioManager (baku)<br />
** anything else to do?<br />
* Bluetooth work may have fallout work (Team Ben)<br />
* Contacts API in desktop, related permissions situation<br />
** We are planning to deprecate the current Contacts API so we should make sure that we keep that into consideration<br />
<br />
== API standardizations ==<br />
<br />
* Change <iframe mozbrowser> to <webview> (or whatever).<br />
** Right now the mozbrowser API doesn't get loaded until some time after the iframe is inserted into the DOM. This makes things difficult for clients who would like to be able to count on e.g. always being able to call setVisible().<br />
** When we make this change, we should look into converting mozbrowser into C++. Loading it currently has relatively high overhead, and we've put in a bunch of hacks to work around it.<br />
** If we do this, we should coordinate this HTML parser hack somehow and probably not expose it (and not reserve "webview" as a name for normal content).<br />
<br />
== General DOM stuff ==<br />
<br />
* [http://dom.spec.whatwg.org/#futures DOM Futures]<br />
* [http://github.com/mounirlamouri/storage.js storage.js]<br />
** related to https://wiki.mozilla.org/WebAPI/Storage2013<br />
* [http://url.spec.whatwg.org/#api URL API] (sicking)<br />
* clean up rich text editing<br />
* Speech API<br />
** isn't smaug working on that?<br />
* Improve appcache<br />
** Mozilla's proposal: http://lists.w3.org/Archives/Public/public-webapps/2013JanMar/0977.html<br />
** Google's NavigationController: https://github.com/slightlyoff/NavigationController/<br />
* Storage<br />
** Sandboxed Filesystem<br />
** Quota API<br />
** Data-moving (temp -> perm)<br />
** move appcache, cookies and localStorage to centralized quota manager<br />
** speak with necko team about disk cache work<br />
* support shared workers and background workers explicitly for things like social API (?) (dougt)<br />
** support web pages and apps doing something in the background<br />
<br />
== General Gecko stuff ==<br />
<br />
* integrate better with profiling tools<br />
** work with SPS profiler people<br />
** IDB performance<br />
** for both B2G and Firefox<br />
* Expose audio API to Firefox Desktop Internal code<br />
<br />
== Misc ==<br />
<br />
* Build a Web API dashboard similar to chromestatus.com, see if we can integrate it with the devtools UI, and what other cool things we can do with it. (ehsan)<br />
* tests<br />
* resolving intermittent test failures<br />
* worker-ification of existing APIs<br />
** make this easier<br />
<br />
== Untriaged / open questions ==<br />
<br />
* do we still want to change the security model of workers as sicking at some point suggested?<br />
** loading has same-origin limitation</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MDN/Doc_Sprints/2013April&diff=650060
MDN/Doc Sprints/2013April
2013-04-28T17:43:12Z
<p>Mounir.lamouri: /* Who */</p>
<hr />
<div>Over April 26-28 (Friday, Saturday, Sunday) the [https://developer.mozilla.org Mozilla Developer Network] team will host a documentation sprint in [http://www.mozilla.org/en-US/about/contact.html#map-canada-vancouver Mozilla's Vancouver office]. <br />
Remote participation and meet-ups are also encouraged.<br />
<br />
=What's MDN?=<br />
<br />
The [https://developer.mozilla.org Mozilla Developer Network] (MDN) is one of the most popular documentation resources for developers on the Web.<br />
<br />
As an open, community-driven wiki, MDN provides Web developers, designers, application developers, and extension and theme writers with access to the best documentation, tutorials and developer tools available. Anyone can add and edit content to make it even better. It’s used by developers building resources for a better Web, regardless of brand, browser or platform.<br />
<br />
=What's a Doc Sprint?=<br />
A document sprint is a short time period, usually two to three days, when people from the community gather for focused effort on writing documentation for MDN.<br />
<br />
=Who's invited?=<br />
<br />
MDN doc sprints are open to anyone. For this one, we're expecting to have most of Mozilla's full-time writers, some volunteer contributors, and some Mozilla developers in attendance. But it's also open to any local attendees who have an interest in contributing to MDN, whether or not they're employed by Mozilla, and whether or not they've contributed to MDN before.<br />
<br />
Doc sprints are a great opportunity for people who might want to contribute to MDN to get started, in a place where they can easily get help from the other attendees. You can attend for the whole three days, or any part of the sprint.<br />
<br />
We're limited, though, by the capacity of the space: we can fit around 20 people in the communal area of the office, and are already expecting 12 attendees, so we could host 8 more people. If we get a lot of interest, though, we'll try to open up more space.<br />
<br />
If you'd like to attend, please contact Janet (jswisher at mozilla dot com) or Ali (aspivak at mozilla dot com).<br />
<br />
= Schedule =<br />
The following are the times when in-person sprinters are going to be working. Remote sprinters are welcome to work outside these hours, whenever is convenient in your time zone.<br />
* Friday Apr 26: 9:30am to 5:30pm PT (16:30 Fri to 00:30 Sat UTC)<br />
* Saturday Apr 27: 9:00am to 4:00pm PT (16:00 to 23:00 UTC) <br />
* Sunday Apr 28: 9:30am to 5:00pm PT (16:30 to 00:00 UTC)<br />
<br />
You are welcome to start earlier or continue later, but this time frame is when you are likely to find other people online working on MDN. Obviously, you do not have to participate the entire time; drop in when it's convenient, and sleep when you need to. <br />
<br />
=Topics=<br />
[https://etherpad.mozilla.org/Docsprint2013April Etherpad for notes]<br />
<br />
There are two major topics to focus on:<br />
* Web Workers<br />
* Web device APIs<br />
<br />
We need to improve the reference pages, and create or enhance tutorial and guides for these topics.<br />
<br />
Contributions on other topics are, of course, also welcome.<br />
<br />
* [https://developer.mozilla.org/Project:en/Documentation_Wishlist MDN documentation wishlist]<br />
* [http://beta.elchi3.de/doctracker/#list=fx&version= Firefox issues with doc impacts]<br />
* Add [https://developer.mozilla.org/Project:en/Compatibility_tables browser compatibility tables] to CSS, DOM, and JavaScript reference pages. <br />
* Fill out browser compatibility tables on reference pages where they exist, based on info from caniuse.com and quirksmode.org. <br />
* Pages that [https://developer.mozilla.org/en-US/docs/needs-review/technical need technical review].<br />
* Pages that [https://developer.mozilla.org/en-US/docs/needs-review/editorial need editorial review]<br />
* David Bruant's [https://developer.mozilla.org/User:dbruant/TODO TODO list] (mostly JS-related stuffs)<br />
* Add [https://developer.mozilla.org/en-US/docs/Project:MDC_editor_guide#Using_live_sample_code live samples] to existing articles on CSS, HTML, and JavaScript.<br />
* Make videos showing how to [https://hacks.mozilla.org/2012/11/mdn-virtual-doc-sprint-nov-30-to-dec-1/comment-page-1/#comment-1867441 get and build Firefox code].<br />
<br />
Suggest a topic, either that you want to work on, or that you'd like to see done by someone.<br />
<br />
== Helpful information ==<br />
<br />
* Our list of [https://developer.mozilla.org/en-US/docs/Project:Subject-matter_experts subject-matter experts].<br />
* Our list of [https://developer.mozilla.org/en-US/docs/Project:Topic_drivers topic drivers]. These are people that organize specific areas of our documentation.<br />
* How to [https://developer.mozilla.org/en-US/docs/Project:MDC_editor_guide#Using_live_sample_code add live samples] to articles.<br />
<br />
= Logistics =<br />
<br />
== Mozilla Office ==<br />
163 W Hastings St Suite 209<br/><br />
Vancouver BC V6B 1H5 Canada<br />
<br />
Lunch will be catered in the office for the doc sprint, Friday-Sunday.<br />
<br />
== Hotel ==<br />
Delta Vancouver Suites<br/><br />
550 W Hastings St Vancouver, BC V6B 1L6, Canada<br/><br />
+1 604-689-8188<br/><br />
<br />
If you're staying at the hotel, you should have received your confirmation number by email.<br />
<br />
The hotel is 3-4 blocks, about 300 meters, from the office. <br />
<br />
Rooms include access to the Club Lounge (where they serve continental breakfast as well as afternoon snacks, which is included in the room rate) and free Wifi, and will be paid through a Mozilla account, so you won't need to pay for your stay. They will likely ask for a crdit card for "incidentals" like the minibar, though.<br />
<br />
We'll meet in the hotel lobby & head over to the office at 8:45 am & generally finish up around 5 or 6 pm.<br />
Breakfast in the club lounge at the hotel - please eat breakfast in the Lounge and not in the hotel restaurant, as that will be charged to you.<br />
<br />
=== Getting to/from the hotel ===<br />
<br />
'''Train:''' From the airport you can take the Canada Line directly to Waterfront station (Granville and West Hastings). Cost $3.75 ($2.50 after 6 pm and on weekends.). Ticket kiosks available at the train station. Schedule & info: http://www.translink.ca/en/Schedules-and-Maps.aspxTranslink<br />
<br />
'''Car Service:'''<br />
RJ Travels (Gurvinder) now serves the Vancouver (YVR) airport. Charges bill directly to Mozilla. Airport transfers can be arranged by emailing Gurvinder at rjtravels1313@gmail.com. Say you are from Mozilla and would like to arrange car service & include your arrival/departure information (you can do arrival and departure in one email)<br />
<br />
'''Cabs:'''<br />
A cab from the airport takes 25 minutes and costs around $30. Most cabs in Vancouver take credit cards.<br />
<br />
== Evenings (dinner & entertainment) ==<br />
<br />
'''Friday''':<br/><br />
[http://www.revelroom.ca/Revel/Welcome.html Revel Room] @ 6:30<br/><br />
238 Abbott St Vancouver, BC V6B 2K8, Canada<br />
<br />
'''Saturday''': Tour of Granville Island & dinner in Yaletown<br/><br />
[http://theaquabus.com/ Aquabus] from [http://theaquabus.com/stop/plaza-of-nations/ Plaza of Nations] > [http://granvilleisland.com/ Granville Island] @ 4:30pm<br/><br />
Aquabus from Granville Island > Davies Street @ 7pm<br/><br />
[http://www.honjinsushi.com/ Honjin] @ 8pm <br/><br />
138 Davie St Vancouver, BC V6Z 2V4, Canada<br />
<br />
'''Sunday'''<br/><br />
[http://www.sunsuiwah.com/en_home.html Sun Sui Wah] @ 7pm <br/><br />
3888 Main St Vancouver, BC V5V 3N9, Canada<br />
<br />
Breakfast each day will be in the Club Lounge at the hotel & lunch will be provided at the Mozilla office<br />
<br />
= Who =<br />
If you're planning to participate, please add your name, IRC nickname and/or MDN user name, and what you'd like to work on, below (you need to create an account on this (spam-free) wiki in order to edit it):<br />
<br />
{|border="1" cellspacing="0"<br />
|-<br />
! Name !! IRC nick !! MDN ID !! Topic(s)<br />
|-<br />
|Janet || jms || jswisher || copyediting, cleanup<br />
|-<br />
|Will || wbamberg || wbamberg || Developer tools homepage<br />
|-<br />
|Mark || markg || MarkGiffin || app payments, WebAPIs<br />
|-<br />
|Sheppy || sheppy || Sheppy || All the things<br />
|-<br />
|Rahel B.|| || || Content strategy, etc.<br />
|-<br />
|Jeremie|| Jeremie || Jeremie || WebAPIs<br />
|-<br />
|Frédéric || FredB || FredB || TBD<br />
|-<br />
|Andy McKay || andym || amckay || App payments (Friday only)<br />
|-<br />
|Dan Scott || dbs || dbs || TBD (Friday only - remote)<br />
|-<br />
|Florian Scholz || fs || Elchi3 || DevDocNeeded<br />
|-<br />
|Aras Balali || arasbm || arasbm || Apps/Firefox OS Apps<br />
|-<br />
|Mounir Lamouri || mounir || mounirlamouri || Web APIs<br />
|}</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI&diff=650057
WebAPI
2013-04-28T17:14:04Z
<p>Mounir.lamouri: add MDN link</p>
<hr />
<div>The Mozilla WebAPI team is pushing the envelope of the web to include --- and in places exceed --- the capabilities of competing stacks.<br />
<br />
== Contributing ==<br />
<br />
WebAPI work is being tracked by Mozilla {{bug|673923}}. Find an dependent bug that interests you (and is unassigned), and assign it to yourself.<br />
<br />
== Documentation ==<br />
<br />
This wiki page's purpose is mostly to be able to track the advancement of the work on the different APIs covered by the WebAPI team and help working on those. If you are interested in Web APIs documentation, you should look at MDN documentation page for WebAPIs: https://developer.mozilla.org/docs/WebAPI <br />
<br />
== APIs ==<br />
<br />
Here's a list of the APIs that we're working on. Some of them are done, and some of them we haven't gotten further than acknowledge that we probably need them.<br />
<br />
===Planned for initial release of B2G (aka Basecamp)===<br />
<!--<br />
{{WebAPIPlatformAvailability|STATUS|PLATFORM}}<br />
<br />
STATUS = notPlanned | certifiedOnly | implemented | notImplemented | offByDefault<br />
PLATFORM = Desktop | Android | B2G<br />
<br />
See definition of template or mouseovers for definitions of status.<br />
--><br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Description<br />
! Standardization<br />
! colspan="3"|Availability<br />
! See also<br />
|-<br />
| [[WebAPI/WebTelephony|WebTelephony]]<br />
| Allow placing and answering phone calls as well as build in-call UI.<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|674726}}, [[WebAPI/Security/WebTelephony|Security]]<br />
|-<br />
| [http://dev.w3.org/2009/dap/vibration/ Vibration API]<br />
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.<br />
| W3C CR (Device APIs)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|679966}}, [[WebAPI/Security/Vibration|Security]]<br />
|-<br />
| [[WebAPI/WebSMS|WebSMS]]<br />
| Send/receive SMS messages as well as manage messages stored on device.<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|674725}}, [[WebAPI/Security/SMS|Security]]<br />
|-<br />
| [[WebAPI/IdleAPI|Idle API]]<br />
| Get notifications when user is idle.<br />
| Needs plan<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|715041}}, [[WebAPI/Security/Idle|Security]]<br />
|-<br />
| [[WebAPI/ScreenOrientation|Screen Orientation]]<br />
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.<br />
| W3C WD (WebApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|720794}} {{bug|740188}} {{bug|673922}}, [[WebAPI/Security/ScreenOrientation|Security]]<br />
|-<br />
| [[WebAPI/SettingsAPI|Settings API]]<br />
| Set system-wide configurations that are saved permanently on the device.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|678695}}, [[WebAPI/Security/Settings|Security]]<br />
|-<br />
| [[WebAPI/PowerManagementAPI|Power Management API]]<br />
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|708964}}, [[WebAPI/Security/PowerManagement|Security]]<br />
|-<br />
| [[WebAPI/WebMobileConnection|Mobile Connection API]]<br />
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|729173}}, [[WebAPI/Security/MobileConnection|Security]]<br />
|-<br />
| TCP Socket API<br />
| Low-level TCP socket API. Will also include SSL support.<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|privilegedAndCertified|B2G}}<br />
| {{bug|733573}}, [[WebAPI/Security/TCPSocket|Security]]<br />
|-<br />
| [http://www.w3.org/TR/geolocation-API/ Geolocation API]<br />
| Access to the end user's location.<br />
| W3C CR<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| [[WebAPI/Security/Geolocation|Security]]<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/ed980c42261c5f4a WiFi Information API]<br />
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| [[WebAPI/Security/Wifi|Security]]<br />
|-<br />
| [[WebAPI/DeviceStorageAPI|Device Storage API]]<br />
| Add/Read/Modify files stored on a central location on the device. For example the "pictures" folder on modern desktop platforms or the photo storage in mobile devices.<br />
| Needs plan<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|privilegedAndCertified|B2G}}<br />
| {{bug|717103}}, [[WebAPI/Security/DeviceStorage|Security]]<br />
|-<br />
| [[WebAPI/ContactsAPI|Contacts API]]<br />
| Add/Read/Modify the device contacts address book.<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|privilegedAndCertified|B2G}}<br />
| {{bug|674720}}, [[WebAPI/Security/Contacts|Security]]<br />
|-<br />
| [http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html Mouse Lock API]<br />
| Lock access to mouse and get access to movement deltas rather than coordinates.<br />
| W3C ED<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notPlanned|B2G}}<br />
| {{bug|633602}}<br />
|-<br />
| [https://developer.mozilla.org/en-US/docs/JavaScript_API Open WebApps]<br />
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Open WebApps app store.<br />
| W3C WD (SysApps)<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|697006}}, [[WebAPI/Security/OpenWebApp|Security]]<br />
|-<br />
| [[WebAPI/WebBluetooth|WebBluetooth]]<br />
| Low level access to Bluetooth hardware.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|674737}}, [[WebAPI/Security/Bluetooth|Security]]<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html Network Information API]<br />
| Get basic information about current network connectivity. Example: "How fast of a connection do I have?".<br />
| W3C ED<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
| {{bug|677166}} {{bug|713199}}, [[WebAPI/Security/NetworkInfo|Security]]<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/battery/Overview.html Battery Status API]<br />
| Information about battery charge level and if device is plugged in.<br />
| W3C CR (DAP)<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|678694}}, [[WebAPI/Security/Battery|Security]]<br />
|-<br />
| [[WebAPI/AlarmAPI|Alarm API]]<br />
| Schedule a notification, or for an application to be started, at a specific time.<br />
| W3C WD (SysApps)<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|749551}}, [[WebAPI/Security/Alarm|Security]]<br />
|-<br />
| [[WebAPI/BrowserAPI|Browser API]]<br />
| Enables implementing a browser completely in web technologies.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|privilegedAndCertified|B2G}}<br />
| {{bug|693515}}, [[WebAPI/Security/BrowserAPI|Security]]<br />
|-<br />
| Time/Clock API<br />
| Set current time. Timezone will go in the Settings API.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notimplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notimplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|714357}}, {{bug|714358}}, [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]<br />
|-<br />
| [[WebAPI/WebActivities|Web Activities]]<br />
| Delegate an activity to another application.<br />
| Discussed in Device APIs<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|715814}} {{bug|776027}} for Android<br />
|-<br />
| [[WebAPI/SimplePush|Push Notifications API]]<br />
| Allow the platform to send notification messages to specific applications.<br />
| [http://telefonicaid.github.com/WebAPISpecs/Push/index.html W3C ED (Webapps)]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
| {{bug|747907}}, [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapps/Sff8MqFSO4E Security]<br />
|-<br />
| Permissions API<br />
| Allow Settings app to manage all app permissions in a centralized location<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|707625}}, [[WebAPI/Security/PermissionsAPI|Security]]<br />
|-<br />
| [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/PraULCQntqA WebFM API]<br />
| For FM radio feature. <br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|749053}}, [[WebAPI/Security/FMRadioAPI|Security]]<br />
|-<br />
| [[WebAPI/FileHandleAPI|FileHandle API]]<br />
| Writable files with locking.<br />
| Needs plan<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
| {{bug|726593}}<br />
|-<br />
| Network Stats API<br />
| Monitor data usage and expose data to privileged apps<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
| {{bug|746069}}<br />
|-<br />
| [[WebAPI/WebPayment|WebPayment]]<br />
| Allow web content to initiate payments and refunds for virtual goods. For the server implementation, see [[WebAPI/WebPayment|WebPaymentProvider]].<br />
| [http://lists.w3.org/Archives/Public/public-webpayments/2013Jan/0029.html Beginning]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|767818}}<br />
|-<br />
| [http://www.w3.org/TR/IndexedDB/ IndexedDB]<br />
| Client-side storage of structured data and high performance searches on this data<br />
| W3C WD<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|553412}}, [[WebAPI/Security/indexDB|Security]]<br />
|-<br />
| [[WebAPI/ArchiveAPI|Archive API]]<br />
| Blob support for Zip file contents<br />
| Future?<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|offByDefault|B2G}}<br />
| {{bug|772434}}<br />
|-<br />
| [http://www.w3.org/TR/ambient-light/ Ambient light sensor]<br />
| Device light sensor support<br />
| W3C WD<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|738465}}<br />
|-<br />
| [http://www.w3.org/TR/proximity/ Proximity sensor]<br />
| Device proximity sensor support<br />
| W3C WD<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
| {{bug|738131}}<br />
|-<br />
|}<br />
<br />
===Planned for the future===<br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
|-<br />
| [[WebAPI/ResourceLockAPI|Resource lock API]]<br />
| {{bug|697132}}<br />
| Prevent resources from being turned off, for example screen dimming, WiFi turning off, CPU going into sleep mode etc.<br />
| Complete. <br>[[WebAPI/Security/ResourceLock|Security Design Complete]]<br />
|-<br />
| UDP Datagram Socket API<br />
| {{bug|745283}}<br />
| Low-level UDP API.<br />
| Planning. (Not P1 for basecamp)<br />
|-<br />
| USB file-reading API<br />
| {{bug|748350}} {{bug|737153}}<br />
| When enabled, allows mounting of device storage as a USB filesystem on the tethered computer. <br />
| Must be complete by June/July.<br>Not really a webAPI, no security design.<br />
|-<br />
| [[Platform/Features/VideoConferencing|Camera API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway. <br>[[WebAPI/Security/Camera|Security Design Complete]]<br />
|-<br />
| [[Platform/Features/VideoConferencing|Peer to Peer API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway.<br />
|-<br />
| [[WebAPI/WebNFC|WebNFC]]<br />
| {{bug|674741}}<br />
| Low level access to NFC hardware. So far focusing on NDEF support.<br />
| API drafted, implementation underway for B2G (not Andorid/Desktop), must be complete by June/July. <br>[[WebAPI/Security/WebNFC|Security Design Complete]]<br />
|-<br />
| [[WebAPI/WebUSB|WebUSB]]<br />
| {{bug|674718}}<br />
| Low level access to USB hardware.<br />
| [[WebAPI/Security/WebUSB|Security Design Complete]]<br />
|-<br />
| HTTP-cache API<br />
|<br />
| Query what's stored in the browsers http-cache. Add/remove entries. Update expiration time. Get data directly from cache.<br />
| None<br />
|-<br />
| [[WebAPI/CalendarAPI|Calendar API]]<br />
| <br />
| Add/Read/Modify to the device calendar.<br />
| Implementation not planned ATM. If/when implemented, it should mimic [[WebAPI/ContactsAPI]].<br />
|-<br />
| Spellcheck API<br />
|<br />
| Enable webpages to check if a piece of text is correctly spelled as well as get suggestions for corrections.<br />
| None<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/3455cb056e40d095 Background services]<br />
|<br />
| Enable a web application to run in the background and perform tasks like syncing or respond to incoming messages.<br />
| Initial proposal of API.<br>[http://groups.google.com/group/mozilla.dev.webapps/browse_thread/thread/f54c52d015d90fd3 Security Design Active]<br />
|-<br />
| [[WebAPI/LogAPI|LogAPI]]<br />
| <br />
| Allows to register the user activity on the phone.<br />
| API proposal exists. Not planned for 1.0.<br />
|-<br />
| [[WebAPI/KeboardIME|Keyboard/IME API]]<br />
| {{bug|737110}} ([https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post], [https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/A7dIBaR3lpU Extended API mailing list post])<br />
| Enables implementing virtual keyboards.<br />
| Only exposed to certified apps for V1. Controlled via a setting instead.]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|}<br />
<br />
===Legend===<br />
{| cellpadding="2" border="1" <br />
|-<br />
| D = Desktop, A = Android, B = B2G<br />
|-<br />
| style="background-color:#8CF;"|only available to certified apps on this platform<br />
|-<br />
| style="background-color:#009999;"|only available to privileged and certified apps on this platform<br />
|-<br />
| style="background-color:#90ff90;"|implemented and preference enabled by default on on this platform<br />
|-<br />
| style="background-color:#FC6;"|implemented but requires explicitly turning on the preference on this platform<br />
|-<br />
| style="background-color:#ff9090;"|not implemented for this platform<br />
|-<br />
| style="background-color: silver;"|not currently planned for this platform<br />
|}<br />
<br />
== Process ==<br />
<br />
A draft specification and prototype implementation of new Web APIs will be discussed publicly on our mailing list and at our public meetings (see below). Once we have an API that we feel that we are satisfied with, we will submit the new API for standardization to the W3C.<br />
<br />
The goal is to standardize all APIs.<br />
<br />
== Design Principles ==<br />
<br />
=== Security ===<br />
<br />
Security will be a central aspect of all the APIs that we design. We wouldn't want any random webpage to be able to read the user's contact list, or able to issue arbitrary commands to any USB device which is hooked up to the user's computer.<br />
<br />
In some cases the solution will be to simply ask the user, like we do today for Geolocation for example. In other cases, where security implications are scarier or where describing the risk to the user is harder, we'll have to come up with better solutions.<br />
<br />
This is an area where we're still doing a lot of research. I really want to emphasize that we don't have all the answers yet, but that we plan on having them before we roll out these APIs to millions of users.<br />
<br />
=== Low Level vs. High Level ===<br />
<br />
One question that often comes up, is should we do low level APIs, like USB access, or high level APIs, like camera access?<br />
<br />
In many cases we are going to want to do both high level and low level APIs, with an initial priority on low level. High level APIs will let us create more friendly APIs, which are both easier to use for developers, and better for users since we can provide better security guarantees. However low level APIs will provide support for a wider range of hardware and use cases and will get the browser out of the critical path for innovation.<br />
<br />
== Plans ==<br />
* [[WebAPI/PlannedWork|Work we'd like to do in the future]]<br />
=== Plans for 2013 ===<br />
<br />
* [[WebAPI/Storage2013|Storage discussion notes]]<br />
<br />
== Meetings ==<br />
<br />
Meeting Details:<br />
* [[WebAPI/{{#time: Y-m-d | tuesday}}|Agenda for this week (create below if it doesn't exist yet)]]<br />
* Tuesdays at [http://www.timeanddate.com/worldclock/fixedtime.html?msg=WebAPI+meeting&iso=20130326T10&p1=224&am=30 10:00 AM Pacific Time] (17:00 UTC)<br />
* [https://v.mozilla.com/flex.html?roomdirect.html&key=H1q64MSinl9H|'''WebAPI Vidyo room''']<br />
{{conf|98413}}<br />
* San Francisco: Amoeba conference room (7th floor)<br />
* London: Allo Allo conference room<br />
* Toronto: Spadina conference room<br />
* Join irc.mozilla.org [irc://irc.mozilla.org/webapi|IRC #webapi] for back channel<br />
<br />
Notes will be taken on etherpad: https://etherpad.mozilla.org/webapi-meetingnotes<br />
<br />
=== Meeting Notes ===<br />
Create a new weekly agenda from the [[WebAPI/0-0-0|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=WebAPI/0-0-0<br />
default={{#time: Y-m-d | tuesday}}<br />
prefix=WebAPI/<br />
</createbox><br />
<br />
'''''Remember:''''' You'll still need to link it below!<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
* [[WebAPI/2013-04-23|April 23 2013]]<br />
* No meeting 2013-04-16 due to work week<br />
* [[WebAPI/2013-04-09|April 9 2013]]<br />
* April 02 2013 - planning session ([[WebAPI/PlannedWork|output]]) was done instead of regular meeting<br />
* [[WebAPI/2013-03-26|March 26 2013]]<br />
* [[WebAPI/2013-03-19|March 19 2013]]<br />
* [[WebAPI/2013-03-12|March 12 2013]]<br />
* [[WebAPI/2013-03-05|March 5 2013]]<br />
* [[WebAPI/2013-02-26|February 26 2013]]<br />
* [[WebAPI/2013-02-19|February 19 2013]]<br />
* [[WebAPI/2013-02-12|February 12 2013]]<br />
* No meeting 2013-02-05 due to work week<br />
* [[WebAPI/2013-01-29|January 29 2013]]<br />
* [[WebAPI/2013-01-22|January 22 2013]]<br />
* [[WebAPI/2013-01-15|January 15 2013]]<br />
* No meeting 2013-01-08 due to work week<br />
* No meeting 2013-01-01 due to New Year's Day holiday<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* No meeting 2012-12-25 due to Christmas holiday<br />
* [[WebAPI/2012-12-18|December 18 2012]]<br />
* [[WebAPI/2012-12-11|December 11 2012]]<br />
* [[WebAPI/2012-12-04|December 4 2012]]<br />
* [[WebAPI/2012-11-27|November 27 2012]]<br />
* [[WebAPI/2012-11-20|November 20 2012]]<br />
* [[WebAPI/2012-11-13|November 13 2012]]<br />
* No meeting 2012-11-06 due to work week<br />
* [[WebAPI/2012-10-30|October 30 2012]]<br />
* [[WebAPI/2012-10-23|October 23 2012]]<br />
* [[WebAPI/2012-10-16|October 16 2012]]<br />
* [[WebAPI/2012-10-09|October 9 2012]]<br />
* [[WebAPI/2012-10-02|October 2 2012]]<br />
* [[WebAPI/2012-09-25|September 25 2012]]<br />
* [[WebAPI/2012-09-18|September 18 2012]]<br />
* [[WebAPI/2012-09-11|September 11 2012]]<br />
* [[WebAPI/2012-09-04|September 4 2012]]<br />
* No meetings 2012-08-21 or 2012-08-28 due to work weeks<br />
* [[WebAPI/2012-08-14|August 14 2012]]<br />
* [[WebAPI/2012-08-07|August 7 2012]]<br />
* [[WebAPI/2012-07-31|July 31 2012]]<br />
* [[WebAPI/2012-07-24|July 24 2012]]<br />
* [[WebAPI/2012-07-17|July 17 2012]]<br />
* [[WebAPI/2012-07-10|July 10 2012]]<br />
* [[WebAPI/2012-07-03|July 3 2012]]<br />
* [[WebAPI/2012-06-26|June 26 2012]]<br />
* [[WebAPI/2012-06-19|June 19 2012]]<br />
* [[WebAPI/2012-06-12|June 12 2012]]<br />
* [[WebAPI/2012-06-05|June 5 2012]]<br />
* [[WebAPI/2012-05-29|May 29 2012]]<br />
* [[WebAPI/2012-05-22|May 22 2012]]<br />
* [[WebAPI/2012-05-15|May 15 2012]]<br />
* [[WebAPI/2012-05-08|May 8 2012]]<br />
* [[WebAPI/2012-05-01|May 1 2012]]<br />
* [[WebAPI/2012-04-24|April 24 2012]]<br />
* [[WebAPI/2012-04-10|April 10 2012]]<br />
* [[WebAPI/2012-04-03|April 3 2012]]<br />
* [[WebAPI/2012-03-20|March 20 2012]]<br />
* [[WebAPI/2012-03-13|March 13 2012]]<br />
* [[WebAPI/2012-03-06|March 6 2012]]<br />
* [[WebAPI/2012-02-28|February 28 2012]]<br />
* [[WebAPI/2012-02-14|February 14 2012]]<br />
* [[WebAPI/2012-02-07|February 7 2012]]<br />
* [[WebAPI/2012-01-31|January 31 2012]]<br />
* [[WebAPI/2012-01-24|January 24 2012]]<br />
* [[WebAPI/2012-01-17|January 17 2012]]<br />
* [[WebAPI/2012-01-10|January 10 2012]]<br />
* [[WebAPI/2012-01-03|January 3 2012]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
* [[WebAPI/2011-12-20|December 20 2011]]<br />
* [[WebAPI/2011-12-13|December 13 2011]]<br />
* [[WebAPI/2011-11-29|November 29 2011]]<br />
* [[WebAPI/2011-11-22|November 22 2011]]<br />
* [[WebAPI/2011-11-15|November 15 2011]]<br />
* [[WebAPI/2011-11-08|November 8 2011]]<br />
* [[WebAPI/2011-11-01|November 1 2011]]<br />
* [[WebAPI/2011-10-25|October 25 2011]]<br />
* [[WebAPI/2011-10-18|October 18 2011]]<br />
* [[WebAPI/2011-10-11|October 11 2011]]<br />
* [[WebAPI/2011-10-04|October 4 2011]]<br />
* [[WebAPI/2011-09-27|September 27 2011]]<br />
* [[WebAPI/2011-09-20|September 20 2011]]<br />
* [[WebAPI/2011-09-06|September 6 2011]]<br />
* [[WebAPI/2011-08-30|August 30 2011]]<br />
* [[WebAPI/2011-08-23|August 23 2011]]<br />
|}<br />
<br />
== Communication ==<br />
=== Mailing-list / Newsgroup ===<br />
<br />
You can subscribe to the mailing list here: https://lists.mozilla.org/listinfo/dev-webapi<br />
<br />
And the web based API is here: http://groups.google.com/group/mozilla.dev.webapi/topics<br />
<br />
The newsgroup lives on the news.mozilla.org server and has the name mozilla.dev.webapi<br />
<br />
=== IRC ===<br />
Find us on irc.mozilla.org in #webapi.<br />
[[IRC|Need help to use Mozilla IRC servers?]]<br />
<br />
=== See also ===<br />
* [http://hacks.mozilla.org/2011/08/introducing-webapi/ Introducing WebAPI] blog post by Robert Nyman<br />
* [http://hacks.mozilla.org/2011/08/more-details-about-the-webapi-effort/ More details about the WebAPI effort] blog post by Jonas Sicking<br />
* [http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ Mozilla joins the W3C DAP – WebAPI progress] blog post by Robert Nyman and Jonas Sicking<br />
* [http://johnhammink.blogspot.com/2011/11/lets-have-look-at-some-recently-landed.html A look at the latest WebAPIs] a demo/blog post by John Hammink<br />
<br />
=== Demos ===<br />
* [http://robnyman.github.com/battery/ Battery API by Robert Nyman]<br />
* [http://robnyman.github.com/vibration/ Vibration API by Robert Nyman]<br />
* [http://people.mozilla.org/~jhammink/webapi_test_pages/ Demos by John Hammink]<br />
* [http://colinfrei.com/networkapi.html Network API by Colin Frei]<br />
<br />
==== Other efforts ====<br />
* [http://www.w3.org/2009/dap/ W3C Device APIs (DAP)]. Mozilla developers are [http://www.w3.org/2000/09/dbwg/details?group=43696&public=1 members] of the DAP working group ([http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ announcement]).<br />
* [http://www.wacapps.net/specifications Wholesale Applications Community (WAC) ]<br />
<br />
== Subpages of {{FULLPAGENAME}}==<br />
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}<br />
<br />
[[Category:Web APIs]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/KeyboardIME&diff=648741
WebAPI/KeyboardIME
2013-04-23T13:31:58Z
<p>Mounir.lamouri: Redirected page to WebAPI/KeboardIME</p>
<hr />
<div>#REDIRECT [[WebAPI/KeboardIME]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/KeboardIME&diff=647283
WebAPI/KeboardIME
2013-04-17T10:15:35Z
<p>Mounir.lamouri: /* Proposed API */</p>
<hr />
<div>= Virtual Keyboard/IME API =<br />
<br />
__TOC__<br />
<br />
== Introduction ==<br />
<br />
Virtual Keyboard/IME API aims to implement the system IME as a Web App.<br />
<br />
The API provides the communication channel between the IME App and the other App that receives user's inputs.<br />
<br />
It is very different from the [http://dvcs.w3.org/hg/ime-api/raw-file/default/Overview.html IME API from Google] that aims to re-use the system's IME in a web page.<br />
<br />
== Status ==<br />
<br />
API discussion:<br />
<br />
# [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post]<br />
# [https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/A7dIBaR3lpU Extended API mailing list post]<br />
<br />
Implementation:<br />
#Bug 737110 {{bug|737110}} - Bug 737110 - Virtual Keyboard API<br />
#Bug 844716 {{bug|737110}} - Enable keyboard Apps to get/set selection range of the input field<br />
#Bug 861665 {{bug|861665}} - Allow IME to get notification when text field content is changed<br />
#Bug 861515 {{bug|861515}} - Keyboard should be able to modify the text of the input field directly<br />
#Bug 838308 {{bug|838308}} - mozKeyboard should require a permission to use<br />
<br />
== Features ==<br />
<br />
The Virtual Keyboard/IME API supports the following features:<br />
<br />
* Notifies the VKB app when the focus text field was changing in other<br />
apps<br />
* Allow user to manual hide the keyboard. Check {{bug|737110}}.<br />
* The VKB app should be responsive to properties and the state of the input field (more than HTML5 input type, including current content, cursor position, x-inputmode {{bug|796544}}).<br />
* Sends trust<br />
* The VKB app should be able to send trusted key events such as they are considered by the other apps as user' inputs.<br />
* The VKB app should be able to send a character or a string to the current input cursor position.<br />
* Keyboard should be able to overwrite the current value of the input field of the input field and set the cursor position.<br />
* The VKB app should be able to move the cursor position or select a specified range of text.<br />
* The VKB should be able to switch the focus onto the previous/next input field.<br />
* The return key label of the VKB can be customized.<br />
<br />
== Proposed API ==<br />
<br />
partial interface Navigator {<br />
readonly attribute InputMethodManager mozInputMethodManager;<br />
readonly attribute InputMethodConnection mozInputMethodConnection;<br />
};<br />
<br />
interface InputMethodConnection {<br />
// User begins or finishes editing a field.<br />
// If the user change input directly from one input to another, only one event will be dispatched.<br />
attribute Function oninputmethodstatechange;<br />
<br />
// Whether the user begins editing.<br />
readonly attribute boolean inputStarted; <br />
<br />
// User moves the cursor, changes the selection, or alters the composing text length<br />
attribute Function onselectionchange;<br />
<br />
// Listener to get noftified when the content of the current input field has<br />
// changed.<br />
attribute nsIDOMEventListener ontextchange;<br />
<br />
// Send a keyevent to the input field that is currently attached. It exists in the current interface<br />
void sendKey(in long keyCode, in long charCode, in long modifiers);<br />
<br />
/*<br />
* Replace text around the beginning of the current selection range of the<br />
* editable text and clear the composing text.<br />
*<br />
* @param text The string to be replaced with. <br />
* @param beforeLength The number of characters to be deleted before the<br />
* beginning of the current selection range. Defaults to 0.<br />
* @param afterLength The number of characters to be deleted after the<br />
* beginning of the current selection range. Defaults to 0.<br />
*/<br />
void replaceSurroundingText(in DOMString text, [optional] in long beforeLength, <br />
[optional] in long afterLength);<br />
<br />
// Set the text value of the current input field. <br />
void setText(in DOMString text);<br />
<br />
/*<br />
* Get a substring of the text content of the current input field.<br />
* @param start The start index of the substring.<br />
* @param end The end index of the substring. The character at the end index<br />
* is not included.<br />
*/<br />
void getText(in long start, in long end, in Function callback);<br />
<br />
// Length of the content<br />
readonly attribute long textLength;<br />
<br />
// Set the composing text before the current cursor position.<br />
// To clear the composing text, set the text paramter to the empty string.<br />
void setComposingText(in DOMString text);<br />
<br />
// The start and stop position of the selection. <br />
readonly attribute long selectionStart;<br />
readonly attribute long selectionEnd;<br />
<br />
/*<br />
* Set the selection range of the the editable text.<br />
*<br />
* @param start The beginning of the selected text.<br />
* @param end The end of the selected text.<br />
*<br />
* Note that the start position should be less or equal to the end position.<br />
* To move the cursor, set the start and end position to the same value.<br />
*/<br />
void setSelectionRange(in long start, in long end);<br />
<br />
// Clear the focus of the current input field and hide the keyboard.<br />
void removeFocus();<br />
<br />
// Focus the next text field.<br />
void advanceFocus();<br />
<br />
// Focus the previous text field.<br />
void rewindFocus();<br />
<br />
// This read only attribute is true if user can advance the focus to the next<br />
// text field.<br />
readonly attribute boolean canAdvanceFocus;<br />
<br />
// This readonly attribute is true if user can rewind the focus back to the<br />
// previous text field.<br />
readonly attribute boolean canRewindFocus;<br />
<br />
// The input mode string.<br />
// https://bugzilla.mozilla.org/show_bug.cgi?id=796544<br />
// It can be one of the following values:<br />
// "none"<br />
// "verbatim" - no capitalization, no word suggestions<br />
// "latin" - word suggestions but no capitalization<br />
// "latin-prose" - word suggestions and capitalization at the start of sentences<br />
// "latin-name" - word suggestions and capitalize each word<br />
// "digits" - digits(0-9) only.<br />
readonly attribute DOMString inputMode;<br />
<br />
// The type of the input field, including text, number, password, url, tel and email.<br />
readonly attribute DOMString inputType;<br />
<br />
// Get the return key name, which determines the title of the key displayed in the keyboard and action <br />
// performed when it is pressed. The value could be "done", "next", "go", "search", "send" or other <br />
// customized label for the return key.<br />
// If the value is "next", when pressing the enter key, the focus should be move to the next input field.<br />
readonly attribute DOMString returnKey;<br />
};<br />
<br />
== Examples ==<br />
<br />
var conn = navigator.mozInputMethodConnection;<br />
<br />
// Called when the user starts or finishes editing an input field<br />
conn.oninputmethodstatechange= function(event) {<br />
if (conn.inputStarted) {<br />
// Text input should start<br />
} else {<br />
// Text input should end<br />
}<br />
};<br />
<br />
// Insert a string at the current cursor position<br />
conn.replaceSurroundingText('Hello world');<br />
<br />
// Clear delete 5 characters before the cursor position.<br />
conn.replaceSurroundingText('', 5);<br />
<br />
// Get the selected text<br />
conn.getText(conn.selectionStart, conn.selectionEnd, function callback(text) {<br />
var selectedText = text;<br />
});<br />
<br />
// Get notified when the text content has changed.<br />
conn.ontextchange = function() {<br />
conn.getText(0, conn.textLength, function(text) {<br />
console.log(text);<br />
}<br />
}<br />
<br />
// Move the cursor position<br />
var position = 10;<br />
conn.setSelectionRange(position, position);<br />
<br />
// Hide the keyboard<br />
conn.removeFocus();<br />
<br />
// Switch the focus onto the next input field if possible<br />
if (conn.canAdvanceFocus) {<br />
conn.advanceFocus();<br />
}<br />
<br />
== Related ==<br />
<br />
Android IME API:<br />
<br />
http://developer.android.com/guide/topics/text/creating-input-method.html#IMEAPI<br />
<br />
iOS Keyboard Management:<br />
<br />
http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW1</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/KeboardIME&diff=647282
WebAPI/KeboardIME
2013-04-17T10:15:06Z
<p>Mounir.lamouri: /* Proposed API */</p>
<hr />
<div>= Virtual Keyboard/IME API =<br />
<br />
__TOC__<br />
<br />
== Introduction ==<br />
<br />
Virtual Keyboard/IME API aims to implement the system IME as a Web App.<br />
<br />
The API provides the communication channel between the IME App and the other App that receives user's inputs.<br />
<br />
It is very different from the [http://dvcs.w3.org/hg/ime-api/raw-file/default/Overview.html IME API from Google] that aims to re-use the system's IME in a web page.<br />
<br />
== Status ==<br />
<br />
API discussion:<br />
<br />
# [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post]<br />
# [https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/A7dIBaR3lpU Extended API mailing list post]<br />
<br />
Implementation:<br />
#Bug 737110 {{bug|737110}} - Bug 737110 - Virtual Keyboard API<br />
#Bug 844716 {{bug|737110}} - Enable keyboard Apps to get/set selection range of the input field<br />
#Bug 861665 {{bug|861665}} - Allow IME to get notification when text field content is changed<br />
#Bug 861515 {{bug|861515}} - Keyboard should be able to modify the text of the input field directly<br />
#Bug 838308 {{bug|838308}} - mozKeyboard should require a permission to use<br />
<br />
== Features ==<br />
<br />
The Virtual Keyboard/IME API supports the following features:<br />
<br />
* Notifies the VKB app when the focus text field was changing in other<br />
apps<br />
* Allow user to manual hide the keyboard. Check {{bug|737110}}.<br />
* The VKB app should be responsive to properties and the state of the input field (more than HTML5 input type, including current content, cursor position, x-inputmode {{bug|796544}}).<br />
* Sends trust<br />
* The VKB app should be able to send trusted key events such as they are considered by the other apps as user' inputs.<br />
* The VKB app should be able to send a character or a string to the current input cursor position.<br />
* Keyboard should be able to overwrite the current value of the input field of the input field and set the cursor position.<br />
* The VKB app should be able to move the cursor position or select a specified range of text.<br />
* The VKB should be able to switch the focus onto the previous/next input field.<br />
* The return key label of the VKB can be customized.<br />
<br />
== Proposed API ==<br />
<br />
partial interface Navigator {<br />
readonly attribute InputMethodManager mozInputMethodManager;<br />
readonly attribute InputMethodConnection mozInputMethodConnection;<br />
};<br />
<br />
interface InputMethodConnection {<br />
// User begins or finishes editing a field.<br />
// If the user change input directly from one input to another, only one event will be dispatched.<br />
attribute Function oninputmethodstatechange;<br />
<br />
// Whether the user begins editing.<br />
readonly attribute boolean inputStarted; <br />
<br />
// User moves the cursor, changes the selection, or alters the composing text length<br />
attribute Function onselectionchange;<br />
<br />
// Listener to get noftified when the content of the current input field has<br />
// changed.<br />
attribute nsIDOMEventListener ontextchange;<br />
<br />
// Send a keyevent to the input field that is currently attached. It exists in the current interface<br />
void sendKey(in long keyCode, in long charCode, in long modifiers);<br />
<br />
/*<br />
* Replace text around the beginning of the current selection range of the<br />
* editable text and clear the composing text.<br />
*<br />
* @param text The string to be replaced with. <br />
* @param beforeLength The number of characters to be deleted before the<br />
* beginning of the current selection range. Defaults to 0.<br />
* @param afterLength The number of characters to be deleted after the<br />
* beginning of the current selection range. Defaults to 0.<br />
*/<br />
void replaceSurroundingText(in DOMString text, [optional] in long beforeLength, <br />
[optional] in long afterLength);<br />
<br />
// Set the text value of the current input field. <br />
void setText(in DOMString text);<br />
<br />
/*<br />
* Get a substring of the text content of the current input field.<br />
* @param start The start index of the substring.<br />
* @param end The end index of the substring. The character at the end index<br />
* is not included.<br />
*/<br />
void getText(in long start, in long end, in Function callback);<br />
<br />
// Length of the content<br />
readonly attribute long textLength;<br />
<br />
// Set the composing text before the current cursor position.<br />
// To clear the composing text, set the text paramter to the empty string.<br />
void setComposingText(in DOMString text);<br />
<br />
// The start and stop position of the selection. <br />
readonly attribute long selectionStart;<br />
readonly attribute long selectionEnd;<br />
<br />
/*<br />
* Set the selection range of the the editable text.<br />
*<br />
* @param start The beginning of the selected text.<br />
* @param end The end of the selected text.<br />
*<br />
* Note that the start position should be less or equal to the end position.<br />
* To move the cursor, set the start and end position to the same value.<br />
*/<br />
void setSelectionRange(in long start, in long end);<br />
<br />
// Clear the focus of the current input field and hide the keyboard.<br />
void removeFocus();<br />
<br />
// Focus the next text field.<br />
void advanceFocus();<br />
<br />
// Focus the previous text field.<br />
void rewindFocus();<br />
<br />
// This read only attribute is true if user can advance the focus to the next<br />
// text field.<br />
readonly attribute boolean canAdvanceFocus;<br />
<br />
// This readonly attribute is true if user can rewind the focus back to the<br />
// previous text field.<br />
readonly attribute boolean canRewindFocus;<br />
<br />
// The input mode string.<br />
// https://bugzilla.mozilla.org/show_bug.cgi?id=796544<br />
// It can be one of the following values:<br />
// "none"<br />
// "verbatim" - no capitalization, no word suggestions<br />
// "latin" - word suggestions but no capitalization<br />
// "latin-prose" - word suggestions and capitalization at the start of sentences<br />
// "latin-name" - word suggestions and capitalize each word<br />
// "digits" - digits(0-9) only.<br />
readonly attribute DOMString inputMode;<br />
<br />
// The type of the input field, including text, number, password, url, tel and email.<br />
readonly attribute DOMString inputType;<br />
<br />
// Get the return key name, which determines the title of the key displayed in the keyboard and action <br />
// performed when it is pressed. The value could be "done", "next", "go", "search", "send" or other <br />
// customized label for the return key.<br />
// If the value is "next", when pressing the enter key, the focus should be move to the next input field.<br />
readonly attribute DOMString returnKey;<br />
};<br />
<br />
== Examples ==<br />
<br />
var conn = navigator.mozInputMethodConnection;<br />
<br />
// Called when the user starts or finishes editing an input field<br />
conn.oninputmethodstatechange= function(event) {<br />
if (conn.inputStarted) {<br />
// Text input should start<br />
} else {<br />
// Text input should end<br />
}<br />
};<br />
<br />
// Insert a string at the current cursor position<br />
conn.replaceSurroundingText('Hello world');<br />
<br />
// Clear delete 5 characters before the cursor position.<br />
conn.replaceSurroundingText('', 5);<br />
<br />
// Get the selected text<br />
conn.getText(conn.selectionStart, conn.selectionEnd, function callback(text) {<br />
var selectedText = text;<br />
});<br />
<br />
// Get notified when the text content has changed.<br />
conn.ontextchange = function() {<br />
conn.getText(0, conn.textLength, function(text) {<br />
console.log(text);<br />
}<br />
}<br />
<br />
// Move the cursor position<br />
var position = 10;<br />
conn.setSelectionRange(position, position);<br />
<br />
// Hide the keyboard<br />
conn.removeFocus();<br />
<br />
// Switch the focus onto the next input field if possible<br />
if (conn.canAdvanceFocus) {<br />
conn.advanceFocus();<br />
}<br />
<br />
== Related ==<br />
<br />
Android IME API:<br />
<br />
http://developer.android.com/guide/topics/text/creating-input-method.html#IMEAPI<br />
<br />
iOS Keyboard Management:<br />
<br />
http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW1</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/DataStore&diff=646196
WebAPI/DataStore
2013-04-12T16:32:17Z
<p>Mounir.lamouri: Created page with "= Data Store API = This is the snapshot of a discussion between Mounir Lamouri, Thinker Lee, Gene Lian, Jonas Sicking and Hsin-Yi Tsai.<br> The work drafting happened on http..."</p>
<hr />
<div>= Data Store API =<br />
<br />
This is the snapshot of a discussion between Mounir Lamouri, Thinker Lee, Gene Lian, Jonas Sicking and Hsin-Yi Tsai.<br><br />
The work drafting happened on https://etherpad.mozilla.org/whatever-you-want<br />
<br />
== Use Cases ==<br />
<br />
Allow an application to create data that can be shared with multiple other applications.<br><br />
Allow multiple applications supply data to the same data store.<br><br />
Support read-only stores like facebook contacts.<br><br />
Support read/write stores like built-in contacts.<br><br />
Support keeping a application-local cache of a data store. I.e. enable getting notified about changes to a data store so that the local cache can be kept up-to-date.<br><br />
Enforce types of attributes (avoid to break other applications). <br />
<br />
== Interface ==<br />
<br />
interface DataStore {<br />
// Returns the label of the DataSource.<br />
readonly attribute DOMString name;<br />
// Returns the origin of the DataSource (e.g., 'facebook.com').<br />
// TODO: defines what the value should be if owned by 'system'.<br />
readonly attribute DOMString owner;<br />
// is readOnly a F(current_app, datastore) function? yes<br />
readonly attribute boolean readOnly;<br />
// TODO: id should be incremental.<br />
Future<Object> get(int id);<br />
Future<void> update(int id, Object obj);<br />
Future<int> add(Object obj);<br />
Future<boolean> remove(int id);<br />
Future<void> clear();<br />
readonly attribute DOMString revisionId;<br />
attribute EventHandler onchange;<br />
Future<DataStoreChanges> getChanges(DOMString revisionId);<br />
// TODO: getAll(), getLength().<br />
};<br />
<br />
interface DataStoreChanges {<br />
readonly attribute DOMString revisionId;<br />
readonly attribute int[] addedIds;<br />
readonly attribute int[] updatedIds;<br />
readonly attribute int[] removedIds;<br />
}<br />
<br />
partial interface Navigator {<br />
Future<DataStore[]> getDataStores(DOMString name);<br />
};<br />
<br />
== Manifest ==<br />
<br />
=== For the application that provides the datastore ===<br />
{<br />
...<br />
datastores-owned: {<br />
"contacts": {<br />
"readonly": true,<br />
"name": "Facebook contacts",<br />
}<br />
},<br />
...<br />
}<br />
<br />
=== For the application that wants to access the datastore ===<br />
{<br />
...<br />
datastores-access: {<br />
"contacts": {<br />
"access": "readonly",<br />
"description": ...<br />
}<br />
},<br />
...<br />
}<br />
<br />
== Issues ==<br />
* {name, owner, value} is a complicated key.<br />
* UI: what to do when we have multiple access requests?<br />
* What's happening if the central gets changes during the process of local updates?<br />
* |addedIds|, |removedIds| and |updatedIds| arrays should be synchronized. For example, the ID of record that has been updated and removed should only show up in the |removedIds| array. Need to define the behaviours.</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/ScreenOrientation&diff=641722
WebAPI/ScreenOrientation
2013-03-26T23:46:56Z
<p>Mounir.lamouri: link to spec</p>
<hr />
<div>This API is now a Working Draft at W3C (WebApps WG) so for any documentation, please refer to the specification:<br><br />
https://dvcs.w3.org/hg/screen-orientation/raw-file/tip/Overview.html</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI&diff=641065
WebAPI
2013-03-25T16:04:59Z
<p>Mounir.lamouri: Fix a few specifications status</p>
<hr />
<div>The Mozilla WebAPI team is pushing the envelope of the web to include --- and in places exceed --- the capabilities of competing stacks.<br />
<br />
== Contributing ==<br />
<br />
WebAPI work is being tracked by Mozilla {{bug|673923}}. Find an dependent bug that interests you (and is unassigned), and assign it to yourself.<br />
<br />
== APIs ==<br />
<br />
Here's a list of the APIs that we're working on. Some of them are done, and some of them we haven't gotten further than acknowledge that we probably need them.<br />
<br />
===Planned for initial release of B2G (aka Basecamp)===<br />
<!--<br />
{{WebAPIPlatformAvailability|STATUS|PLATFORM}}<br />
<br />
STATUS = notPlanned | certifiedOnly | implemented | notImplemented | offByDefault<br />
PLATFORM = Desktop | Android | B2G<br />
<br />
See definition of template or mouseovers for definitions of status.<br />
--><br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! Standardization<br />
! colspan="3"|Availability<br />
|-<br />
| [[WebAPI/WebTelephony|WebTelephony]]<br />
| {{bug|674726}}<br />
| Allow placing and answering phone calls as well as build in-call UI.<br />
| [[WebAPI/Security/WebTelephony|Security Design Complete]]<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dev.w3.org/2009/dap/vibration/ Vibration API] (W3C)<br />
| {{bug|679966}}<br />
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.<br />
| [[WebAPI/Security/Vibration|Security Design Complete]]<br />
| W3C CR (Device APIs)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebSMS|WebSMS]]<br />
| {{bug|674725}}<br />
| Send/receive SMS messages as well as manage messages stored on device.<br />
| Done on Android though might not ship there for security reasons. Done for B2G. <br>[[WebAPI/Security/SMS|Security Design Complete]]<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/IdleAPI|Idle API]]<br />
| {{bug|715041}}<br />
| Get notifications when user is idle.<br />
| Implemented. <br>[[WebAPI/Security/Idle|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/ScreenOrientation|Screen Orientation]]<br />
| {{bug|720794}} {{bug|740188}} {{bug|673922}}<br />
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.<br />
| Implemented! <br>[[WebAPI/Security/ScreenOrientation|Security Design Complete]]<br />
| W3C WD (WebApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/SettingsAPI|Settings API]]<br />
| {{bug|678695}}<br />
| Set system-wide configurations that are saved permanently on the device.<br />
| Implementation done for content, chrome in progress. <br>[[WebAPI/Security/Settings|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/PowerManagementAPI|Power Management API]]<br />
| {{bug|708964}}<br />
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.<br />
| API design and implementation in progress. [[WebAPI/Security/PowerManagement|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/WebMobileConnection|Mobile Connection API]]<br />
| {{bug|729173}}<br />
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.<br />
| Complete.<br>[[WebAPI/Security/MobileConnection|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| TCP Socket API<br />
| {{bug|733573}}<br />
| Low-level TCP socket API. Will also include SSL support.<br />
| Implemented, e10s in progress. <br>[[WebAPI/Security/TCPSocket| Security Design Complete]]<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/geolocation-API/ Geolocation API]<br />
| <br />
| Access to the end user's location.<br />
| [[WebAPI/Security/Geolocation|Security Design Complete]]<br />
| W3C CR<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/ed980c42261c5f4a WiFi Information API]<br />
| <br />
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.<br />
| API drafted, implementation mostly complete. <br>[[WebAPI/Security/Wifi| Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/DeviceStorageAPI|Device Storage API]]<br />
| {{bug|717103}}<br />
| Add/Read/Modify files stored on a central location on the device. For example the "pictures" folder on modern desktop platforms or the photo storage in mobile devices.<br />
| Complete <br>[[WebAPI/Security/DeviceStorage|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ContactsAPI|Contacts API]]<br />
| {{bug|674720}}<br />
| Add/Read/Modify the device contacts address book.<br />
| v1 Complete, v2 implementation in progress. <br>[[WebAPI/Security/Contacts|Security Design Complete]]<br />
| W3C ED (SysApps)<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html Mouse Lock API] (W3C)<br />
| {{bug|633602}}<br />
| Lock access to mouse and get access to movement deltas rather than coordinates.<br />
| Implementation complete.<br />
| W3C Draft<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notPlanned|B2G}}<br />
|-<br />
| [https://developer.mozilla.org/en-US/docs/JavaScript_API Open WebApps]<br />
| {{bug|697006}}<br />
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Open WebApps app store.<br />
| Complete <br>[[WebAPI/Security/OpenWebApp|Security Design Complete]]<br />
| W3C WD (SysApps)<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebBluetooth|WebBluetooth]]<br />
| {{bug|674737}}<br />
| Low level access to Bluetooth hardware.<br />
| API drafted, implementation underway for B2G headset only, must be complete by June/July.<br>[[WebAPI/Security/Bluetooth|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html Network Information API] (W3C)<br />
| {{bug|677166}} {{bug|713199}}<br />
| Get basic information about current network connectivity. Example: "How fast of a connection do I have?".<br />
| Implemented on Android, not yet started on B2G.<br> [[WebAPI/Security/NetworkInfo|Security Design Complete]]<br />
| W3C Draft<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/battery/Overview.html Battery Status API] (W3C)<br />
| {{bug|678694}}<br />
| Information about battery charge level and if device is plugged in.<br />
| Implemented!<br> [[WebAPI/Security/Battery| Security Design Complete]]<br />
| W3C CR (DAP)<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/AlarmAPI|Alarm API]]<br />
| {{bug|749551}}<br />
| Schedule a notification, or for an application to be started, at a specific time.<br />
| Implementation in progress.<br>[[WebAPI/Security/Alarm|Security Design Complete]]<br />
| W3C WD (SysApps)<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/BrowserAPI|Browser API]]<br />
| {{bug|693515}}<br />
| Enables implementing a browser completely in web technologies.<br />
| Implementation in progress. <br>[[WebAPI/Security/BrowserAPI|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| Time/Clock API<br />
| {{bug|714357}}, {{bug|714358}} (notification upon time change)<br />
| Set current time. Timezone will go in the Settings API.<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notimplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notimplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebActivities|Web Activities]]<br />
| {{bug|715814}} {{bug|776027}} for Android<br />
| Delegate an activity to another application.<br />
| API finalized, implementation beginning.<br />
| Discussed in Device APIs<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/PushAPI|Push Notifications API]]<br />
| {{bug|747907}}<br />
| Allow the platform to send notification messages to specific applications.<br />
| API drafted<br>[https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapps/Sff8MqFSO4E Security Discussion Active]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Permissions API<br />
| {{bug|707625}}<br />
| Allow Settings app to manage all app permissions in a centralized location<br />
| None <br>[[WebAPI/Security/PermissionsAPI|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/PraULCQntqA WebFM API]<br />
| {{bug|749053}}<br />
| For FM radio feature. <br />
| [[WebAPI/Security/FMRadioAPI|Security Design Complete]]<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/FileHandleAPI|FileHandle API]]<br />
| {{bug|726593}}<br />
| Writable files with locking.<br />
| Implemented!<br>No separate security review required.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Network Stats API<br />
| {{bug|746069}}<br />
| Monitor data usage and expose data to privileged apps<br />
| Implemented!<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/WebPayment|WebPayment]]<br />
| {{bug|767818}}<br />
| Allow web content to initiate payments and refunds for virtual goods. For the server implementation, see [[WebAPI/WebPayment|WebPaymentProvider]].<br />
| API design and implementation in progress.<br />
| Future?<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/IndexedDB/ IndexedDB] (W3C)<br />
| {{bug|553412}}<br />
| Client-side storage of structured data and high performance searches on this data<br />
| Complete<br>[[WebAPI/Security/indexDB|Security Design Complete]]<br />
| W3C CR<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ArchiveAPI|Archive API]]<br />
| {{bug|772434}}<br />
| Blob support for Zip file contents<br />
| API drafted, implementation complete. <br />
| Future?<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|offByDefault|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/ambient-light/ Ambient light sensor] (W3C)<br />
| {{bug|738465}}<br />
| Device light sensor support<br />
| Implementation complete. <br />
| W3C Draft<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/proximity/ Proximity sensor] (W3C)<br />
| {{bug|738131}}<br />
| Device proximity sensor support<br />
| Implementation complete. <br />
| W3C Draft<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
|}<br />
<br />
===Planned for the future===<br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
|-<br />
| [[WebAPI/ResourceLockAPI|Resource lock API]]<br />
| {{bug|697132}}<br />
| Prevent resources from being turned off, for example screen dimming, WiFi turning off, CPU going into sleep mode etc.<br />
| Complete. <br>[[WebAPI/Security/ResourceLock|Security Design Complete]]<br />
|-<br />
| UDP Datagram Socket API<br />
| {{bug|745283}}<br />
| Low-level UDP API.<br />
| Planning. (Not P1 for basecamp)<br />
|-<br />
| USB file-reading API<br />
| {{bug|748350}} {{bug|737153}}<br />
| When enabled, allows mounting of device storage as a USB filesystem on the tethered computer. <br />
| Must be complete by June/July.<br>Not really a webAPI, no security design.<br />
|-<br />
| [[Platform/Features/VideoConferencing|Camera API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway. <br>[[WebAPI/Security/Camera|Security Design Complete]]<br />
|-<br />
| [[Platform/Features/VideoConferencing|Peer to Peer API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway.<br />
|-<br />
| [[WebAPI/WebNFC|WebNFC]]<br />
| {{bug|674741}}<br />
| Low level access to NFC hardware. So far focusing on NDEF support.<br />
| API drafted, implementation underway for B2G (not Andorid/Desktop), must be complete by June/July. <br>[[WebAPI/Security/WebNFC|Security Design Complete]]<br />
|-<br />
| [[WebAPI/WebUSB|WebUSB]]<br />
| {{bug|674718}}<br />
| Low level access to USB hardware.<br />
| [[WebAPI/Security/WebUSB|Security Design Complete]]<br />
|-<br />
| HTTP-cache API<br />
|<br />
| Query what's stored in the browsers http-cache. Add/remove entries. Update expiration time. Get data directly from cache.<br />
| None<br />
|-<br />
| [[WebAPI/CalendarAPI|Calendar API]]<br />
| <br />
| Add/Read/Modify to the device calendar.<br />
| Implementation not planned ATM. If/when implemented, it should mimic [[WebAPI/ContactsAPI]].<br />
|-<br />
| Spellcheck API<br />
|<br />
| Enable webpages to check if a piece of text is correctly spelled as well as get suggestions for corrections.<br />
| None<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/3455cb056e40d095 Background services]<br />
|<br />
| Enable a web application to run in the background and perform tasks like syncing or respond to incoming messages.<br />
| Initial proposal of API.<br>[http://groups.google.com/group/mozilla.dev.webapps/browse_thread/thread/f54c52d015d90fd3 Security Design Active]<br />
|-<br />
| [[WebAPI/LogAPI|LogAPI]]<br />
| <br />
| Allows to register the user activity on the phone.<br />
| API proposal exists. Not planned for 1.0.<br />
|-<br />
| [[WebAPI/KeboardIME|Keyboard/IME API]]<br />
| {{bug|737110}} ([https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post], [https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/A7dIBaR3lpU Extended API mailing list post])<br />
| Enables implementing virtual keyboards.<br />
| Only exposed to certified apps for V1. Controlled via a setting instead.]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|}<br />
<br />
===Legend===<br />
{| cellpadding="2" border="1" <br />
|-<br />
| D = Desktop, A = Android, B = B2G<br />
|-<br />
| style="background-color:#8CF;"|only available to certified apps on this platform<br />
|-<br />
| style="background-color:#90ff90;"|implemented and preference enabled by default on on this platform<br />
|-<br />
| style="background-color:#FC6;"|implemented but requires explicitly turning on the preference on this platform<br />
|-<br />
| style="background-color:#ff9090;"|not implemented for this platform<br />
|-<br />
| style="background-color: silver;"|not currently planned for this platform<br />
|}<br />
<br />
== Process ==<br />
<br />
A draft specification and prototype implementation of new Web APIs will be discussed publicly on our mailing list and at our public meetings (see below). Once we have an API that we feel that we are satisfied with, we will submit the new API for standardization to the W3C.<br />
<br />
The goal is to standardize all APIs.<br />
<br />
== Design Principles ==<br />
<br />
=== Security ===<br />
<br />
Security will be a central aspect of all the APIs that we design. We wouldn't want any random webpage to be able to read the user's contact list, or able to issue arbitrary commands to any USB device which is hooked up to the user's computer.<br />
<br />
In some cases the solution will be to simply ask the user, like we do today for Geolocation for example. In other cases, where security implications are scarier or where describing the risk to the user is harder, we'll have to come up with better solutions.<br />
<br />
This is an area where we're still doing a lot of research. I really want to emphasize that we don't have all the answers yet, but that we plan on having them before we roll out these APIs to millions of users.<br />
<br />
=== Low Level vs. High Level ===<br />
<br />
One question that often comes up, is should we do low level APIs, like USB access, or high level APIs, like camera access?<br />
<br />
In many cases we are going to want to do both high level and low level APIs, with an initial priority on low level. High level APIs will let us create more friendly APIs, which are both easier to use for developers, and better for users since we can provide better security guarantees. However low level APIs will provide support for a wider range of hardware and use cases and will get the browser out of the critical path for innovation.<br />
<br />
== Plans ==<br />
<br />
=== Plans for 2013 ===<br />
<br />
* [[WebAPI/Storage2013|Storage discussion notes]]<br />
<br />
== Meetings ==<br />
<br />
Meeting Details:<br />
* [[WebAPI/{{#time: Y-m-d | tuesday}}|Agenda for this week (create below if it doesn't exist yet)]]<br />
* Tuesdays at [http://www.timeanddate.com/worldclock/fixedtime.html?msg=WebAPI+meeting&iso=20120612T10&p1=224&am=30 10:00 AM Pacific Time] (17:00 UTC)<br />
* [https://v.mozilla.com/flex.html?roomdirect.html&key=H1q64MSinl9H|'''WebAPI Vidyo room''']<br />
{{conf|98413}}<br />
* San Francisco: Golden Gate Bridge conference room (3rd floor)<br />
* Toronto: Spadina conference room<br />
* Join irc.mozilla.org [irc://irc.mozilla.org/webapi|IRC #webapi] for back channel<br />
<br />
Notes will be taken on etherpad: https://etherpad.mozilla.org/webapi-meetingnotes<br />
<br />
=== Meeting Notes ===<br />
Create a new weekly agenda from the [[WebAPI/0-0-0|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=WebAPI/0-0-0<br />
default={{#time: Y-m-d | tuesday}}<br />
prefix=WebAPI/<br />
</createbox><br />
<br />
'''''Remember:''''' You'll still need to link it below!<br />
<br />
{| class="wikitable collapsible" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
* [[WebAPI/2013-03-19|March 19 2013]]<br />
* [[WebAPI/2013-03-12|March 12 2013]]<br />
* [[WebAPI/2013-03-05|March 5 2013]]<br />
* [[WebAPI/2013-02-26|February 26 2013]]<br />
* [[WebAPI/2013-02-19|February 19 2013]]<br />
* [[WebAPI/2013-02-12|February 12 2013]]<br />
* No meeting 2013-02-05 due to work week<br />
* [[WebAPI/2013-01-29|January 29 2013]]<br />
* [[WebAPI/2013-01-22|January 22 2013]]<br />
* [[WebAPI/2013-01-15|January 15 2013]]<br />
* No meeting 2013-01-08 due to work week<br />
* No meeting 2013-01-01 due to New Year's Day holiday<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* No meeting 2012-12-25 due to Christmas holiday<br />
* [[WebAPI/2012-12-18|December 18 2012]]<br />
* [[WebAPI/2012-12-11|December 11 2012]]<br />
* [[WebAPI/2012-12-04|December 4 2012]]<br />
* [[WebAPI/2012-11-27|November 27 2012]]<br />
* [[WebAPI/2012-11-20|November 20 2012]]<br />
* [[WebAPI/2012-11-13|November 13 2012]]<br />
* No meeting 2012-11-06 due to work week<br />
* [[WebAPI/2012-10-30|October 30 2012]]<br />
* [[WebAPI/2012-10-23|October 23 2012]]<br />
* [[WebAPI/2012-10-16|October 16 2012]]<br />
* [[WebAPI/2012-10-09|October 9 2012]]<br />
* [[WebAPI/2012-10-02|October 2 2012]]<br />
* [[WebAPI/2012-09-25|September 25 2012]]<br />
* [[WebAPI/2012-09-18|September 18 2012]]<br />
* [[WebAPI/2012-09-11|September 11 2012]]<br />
* [[WebAPI/2012-09-04|September 4 2012]]<br />
* No meetings 2012-08-21 or 2012-08-28 due to work weeks<br />
* [[WebAPI/2012-08-14|August 14 2012]]<br />
* [[WebAPI/2012-08-07|August 7 2012]]<br />
* [[WebAPI/2012-07-31|July 31 2012]]<br />
* [[WebAPI/2012-07-24|July 24 2012]]<br />
* [[WebAPI/2012-07-17|July 17 2012]]<br />
* [[WebAPI/2012-07-10|July 10 2012]]<br />
* [[WebAPI/2012-07-03|July 3 2012]]<br />
* [[WebAPI/2012-06-26|June 26 2012]]<br />
* [[WebAPI/2012-06-19|June 19 2012]]<br />
* [[WebAPI/2012-06-12|June 12 2012]]<br />
* [[WebAPI/2012-06-05|June 5 2012]]<br />
* [[WebAPI/2012-05-29|May 29 2012]]<br />
* [[WebAPI/2012-05-22|May 22 2012]]<br />
* [[WebAPI/2012-05-15|May 15 2012]]<br />
* [[WebAPI/2012-05-08|May 8 2012]]<br />
* [[WebAPI/2012-05-01|May 1 2012]]<br />
* [[WebAPI/2012-04-24|April 24 2012]]<br />
* [[WebAPI/2012-04-10|April 10 2012]]<br />
* [[WebAPI/2012-04-03|April 3 2012]]<br />
* [[WebAPI/2012-03-20|March 20 2012]]<br />
* [[WebAPI/2012-03-13|March 13 2012]]<br />
* [[WebAPI/2012-03-06|March 6 2012]]<br />
* [[WebAPI/2012-02-28|February 28 2012]]<br />
* [[WebAPI/2012-02-14|February 14 2012]]<br />
* [[WebAPI/2012-02-07|February 7 2012]]<br />
* [[WebAPI/2012-01-31|January 31 2012]]<br />
* [[WebAPI/2012-01-24|January 24 2012]]<br />
* [[WebAPI/2012-01-17|January 17 2012]]<br />
* [[WebAPI/2012-01-10|January 10 2012]]<br />
* [[WebAPI/2012-01-03|January 3 2012]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
* [[WebAPI/2011-12-20|December 20 2011]]<br />
* [[WebAPI/2011-12-13|December 13 2011]]<br />
* [[WebAPI/2011-11-29|November 29 2011]]<br />
* [[WebAPI/2011-11-22|November 22 2011]]<br />
* [[WebAPI/2011-11-15|November 15 2011]]<br />
* [[WebAPI/2011-11-08|November 8 2011]]<br />
* [[WebAPI/2011-11-01|November 1 2011]]<br />
* [[WebAPI/2011-10-25|October 25 2011]]<br />
* [[WebAPI/2011-10-18|October 18 2011]]<br />
* [[WebAPI/2011-10-11|October 11 2011]]<br />
* [[WebAPI/2011-10-04|October 4 2011]]<br />
* [[WebAPI/2011-09-27|September 27 2011]]<br />
* [[WebAPI/2011-09-20|September 20 2011]]<br />
* [[WebAPI/2011-09-06|September 6 2011]]<br />
* [[WebAPI/2011-08-30|August 30 2011]]<br />
* [[WebAPI/2011-08-23|August 23 2011]]<br />
|}<br />
<br />
== Communication ==<br />
=== Mailing-list / Newsgroup ===<br />
<br />
You can subscribe to the mailing list here: https://lists.mozilla.org/listinfo/dev-webapi<br />
<br />
And the web based API is here: http://groups.google.com/group/mozilla.dev.webapi/topics<br />
<br />
The newsgroup lives on the news.mozilla.org server and has the name mozilla.dev.webapi<br />
<br />
=== IRC ===<br />
Find us on irc.mozilla.org in #webapi.<br />
[[IRC|Need help to use Mozilla IRC servers?]]<br />
<br />
=== See also ===<br />
* [http://hacks.mozilla.org/2011/08/introducing-webapi/ Introducing WebAPI] blog post by Robert Nyman<br />
* [http://hacks.mozilla.org/2011/08/more-details-about-the-webapi-effort/ More details about the WebAPI effort] blog post by Jonas Sicking<br />
* [http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ Mozilla joins the W3C DAP – WebAPI progress] blog post by Robert Nyman and Jonas Sicking<br />
* [http://johnhammink.blogspot.com/2011/11/lets-have-look-at-some-recently-landed.html A look at the latest WebAPIs] a demo/blog post by John Hammink<br />
<br />
=== Demos ===<br />
* [http://robnyman.github.com/battery/ Battery API by Robert Nyman]<br />
* [http://robnyman.github.com/vibration/ Vibration API by Robert Nyman]<br />
* [http://people.mozilla.org/~jhammink/webapi_test_pages/ Demos by John Hammink]<br />
* [http://colinfrei.com/networkapi.html Network API by Colin Frei]<br />
<br />
==== Other efforts ====<br />
* [http://www.w3.org/2009/dap/ W3C Device APIs (DAP)]. Mozilla developers are [http://www.w3.org/2000/09/dbwg/details?group=43696&public=1 members] of the DAP working group ([http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ announcement]).<br />
* [http://www.wacapps.net/specifications Wholesale Applications Community (WAC) ]<br />
<br />
== Subpages of {{FULLPAGENAME}}==<br />
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}<br />
<br />
[[Category:Web APIs]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/Inter_App_Communication&diff=636905
WebAPI/Inter App Communication
2013-03-15T05:09:27Z
<p>Mounir.lamouri: add 'similar work' section</p>
<hr />
<div>= Description =<br />
<br />
An application wants to send or get information with another application. For example, some communications related applications (Skype, SMS, dialer) could send communication logs to a logging ''service'' that would then show the log of all communications to the user. Otherwise, an application might want to know which music is currently playing and get this information from a music player.<br />
<br />
As for Web Activities, the idea is that an application will interact with another application. They will be put in relation trough a keyword. Regarding semantic, the main difference with Web Activitiy is that the interaction is not about delegating an action but about communicating. There is no caller/handler relationship. The relationship is actually 1:n while Web Activity is limited to a 1:1 relationship. Regarding user interaction, the main difference with Web Activity is that the other application will not be shown to perform a task, the entire process will happen in the background. <br />
<br />
This API is only there to create a bridge between two applications. The only intended UI is for security reasons, to select communication peers.<br />
<br />
= TODO =<br />
<br />
* Use system messages for port messaging?<br />
* Do we really need Future for all the methods?<br />
* Should we use a Connection object that contains a MessagePort and an origin so both sides can filter with origin?<br />
* Dynamic registration?<br />
* Should we fire an event on the other port when a port call .close()?<br />
<br />
= API =<br />
<br />
== Caller ==<br />
<br />
partial interface Application {<br />
// The returned Future will contain an array of MessagePort, each of<br />
// them representing an peer that allowed the connection.<br />
Future connect(DOMString keyword);<br />
<br />
// The returned Future will contain ''true'' if at least a peer has been<br />
// selected, ''false'' otherwise.<br />
Future registerConnections(DOMString keyword);<br />
<br />
void unregisterConnections(DOMString keyword);<br />
<br />
// The returned Future will contain ''true'' if at least a peer is allowed<br />
// to communicate with the application, ''false'' otherwise.<br />
Future connectionsRegistered(DOMString keyword);<br />
};<br />
<br />
== Receiver ==<br />
<br />
=== Registration ===<br />
<br />
An entry should be used in the manifest file to register as able to connect with another app requesting it. This entry should be named ''connect'' and each keywords should be used in an array:<br />
<br />
{<br />
'name': 'Foobar application',<br />
/* ... */<br />
'connect': [ 'keyword1', 'keyword2' ]<br />
}<br />
<br />
=== Connection acknowledgement ===<br />
<br />
System messages named 'connect' fired when a connection request is received. The system message contains a ''ConnectionRequest'' object as a ''message''.<br />
<br />
Dictionary ConnectionRequest {<br />
MessagePort accept();<br />
DOMString keyword;<br />
DOMString origin;<br />
};<br />
<br />
= Usage =<br />
<br />
== Setup a connection ==<br />
<br />
First, the caller needs to ask the user to select peers he/she wants the app to communicate with. The list of applications being shown depends on the applications that advertises themselves as able to 'connect' with the given keyword:<br />
registerConnections('foobar').then(function(result) {<br />
result ? alert ('peer(s) selected') : alert('no peer selected');<br />
});<br />
<br />
Then, the ''connect'' method has to be called. The returned Future will contain an array of ''MessagePort''. Each of them will allow to communicate with a peer.<br />
connect('foobar').then(function(ports) {<br />
ports.forEach(function(port) {<br />
port.onmessage = function(e) { alert(e.data); };<br />
port.start();<br />
port.postMessage({ msg: 'hi!'});<br />
});<br />
});<br />
<br />
== Accept a connection request ==<br />
<br />
Only applications that have been previously selected by the user (when ''registerConnections'' is called) will get a connection request. Those applications will still be able to reject or accept the connection request. Accepting the connection has to be done explicitely by the receiver by calling ''accept()'' on the received object. Not calling ''accept()'' will implicitely reject the connection request.<br />
var port = null;<br />
navigator.setMessageHandler('connect', function(request) {<br />
if (request.origin != 'http://foobar.com') {<br />
return;<br />
}<br />
port = request.accept();<br />
port.onmessage = function(e) { alert(e.data); };<br />
port.start();<br />
});<br />
<br />
== Disconnect ==<br />
<br />
Calling ''close()'' on a port from either side will stop the connection.<br />
<br />
port.close();<br />
<br />
= Similar work =<br />
<br />
Google Message Passing: https://developer.chrome.com/extensions/messaging.html</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=636904
WebAPI/WebActivities
2013-03-15T05:07:44Z
<p>Mounir.lamouri: Undo revision 634143 by Markg (talk)</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Activity names ===<br />
<br />
Basic activities will have simple names like ''edit'', ''view'', ''pick'' or ''share'' (this is non-exhaustive). A set of basic activities should be defined in the initial specification. Defining will imply specifying how ''data'' should be structured to be considered valid and how the return value (if any) should be structured too.<br />
<br />
Any other specification will be able to create new activities. For example, a Messaging specification might add 'send-sms'.<br />
<br />
Any application will be able to create new activities. Any application is able to register itself as handling the activity ''foobar'' and any application is able to start the activity ''foobar''.<br><br />
However, to prevent naming collision, we recommend such proprietary naming to be prefixed with an URL. For example: ''example.org/foobar'' or ''org.example.foobar'' (doesn't matter that much).<br />
<br />
=== Handling an activiy ===<br />
<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if neither ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp. An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
=== Declarative registration ===<br />
<br />
Open Web App Manifest should include a way to register activities declaratively. The format would look like this:<br />
"activities": {<br />
"share": {<br />
"filters": {<br />
type: ["image/png", "image/gif"],<br />
}<br />
"href": "foo.html",<br />
"disposition": "window"<br />
}<br />
}<br />
<br />
For non-installed applications, this API doesn't yet define how to do a declarative registration. However, it doesn't sound very useful for the moment to have such mechanism. However, if it had to be added, adding a new element into the <head> would seem like the most appropriate solution (or using an already existing one). The only advantage of adding a new element inside the <body> is that we don't have to worry about the <head> parsing issues.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onerror = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
Pick a png image and return what the user had picked:<br />
var r = navigator.registerActivityHandler({ name: "pick", disposition: "inline",<br />
filters: { type: "image/png" }, returnValue: true});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
Open Web Apps can alternatively register in their webapp manifests.<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/Inter_App_Communication&diff=636868
WebAPI/Inter App Communication
2013-03-15T02:01:39Z
<p>Mounir.lamouri: start</p>
<hr />
<div>= Description =<br />
<br />
An application wants to send or get information with another application. For example, some communications related applications (Skype, SMS, dialer) could send communication logs to a logging ''service'' that would then show the log of all communications to the user. Otherwise, an application might want to know which music is currently playing and get this information from a music player.<br />
<br />
As for Web Activities, the idea is that an application will interact with another application. They will be put in relation trough a keyword. Regarding semantic, the main difference with Web Activitiy is that the interaction is not about delegating an action but about communicating. There is no caller/handler relationship. The relationship is actually 1:n while Web Activity is limited to a 1:1 relationship. Regarding user interaction, the main difference with Web Activity is that the other application will not be shown to perform a task, the entire process will happen in the background. <br />
<br />
This API is only there to create a bridge between two applications. The only intended UI is for security reasons, to select communication peers.<br />
<br />
= TODO =<br />
<br />
* Use system messages for port messaging?<br />
* Do we really need Future for all the methods?<br />
* Should we use a Connection object that contains a MessagePort and an origin so both sides can filter with origin?<br />
* Dynamic registration?<br />
* Should we fire an event on the other port when a port call .close()?<br />
<br />
= API =<br />
<br />
== Caller ==<br />
<br />
partial interface Application {<br />
// The returned Future will contain an array of MessagePort, each of<br />
// them representing an peer that allowed the connection.<br />
Future connect(DOMString keyword);<br />
<br />
// The returned Future will contain ''true'' if at least a peer has been<br />
// selected, ''false'' otherwise.<br />
Future registerConnections(DOMString keyword);<br />
<br />
void unregisterConnections(DOMString keyword);<br />
<br />
// The returned Future will contain ''true'' if at least a peer is allowed<br />
// to communicate with the application, ''false'' otherwise.<br />
Future connectionsRegistered(DOMString keyword);<br />
};<br />
<br />
== Receiver ==<br />
<br />
=== Registration ===<br />
<br />
An entry should be used in the manifest file to register as able to connect with another app requesting it. This entry should be named ''connect'' and each keywords should be used in an array:<br />
<br />
{<br />
'name': 'Foobar application',<br />
/* ... */<br />
'connect': [ 'keyword1', 'keyword2' ]<br />
}<br />
<br />
=== Connection acknowledgement ===<br />
<br />
System messages named 'connect' fired when a connection request is received. The system message contains a ''ConnectionRequest'' object as a ''message''.<br />
<br />
Dictionary ConnectionRequest {<br />
MessagePort accept();<br />
DOMString keyword;<br />
DOMString origin;<br />
};<br />
<br />
= Usage =<br />
<br />
== Setup a connection ==<br />
<br />
First, the caller needs to ask the user to select peers he/she wants the app to communicate with. The list of applications being shown depends on the applications that advertises themselves as able to 'connect' with the given keyword:<br />
registerConnections('foobar').then(function(result) {<br />
result ? alert ('peer(s) selected') : alert('no peer selected');<br />
});<br />
<br />
Then, the ''connect'' method has to be called. The returned Future will contain an array of ''MessagePort''. Each of them will allow to communicate with a peer.<br />
connect('foobar').then(function(ports) {<br />
ports.forEach(function(port) {<br />
port.onmessage = function(e) { alert(e.data); };<br />
port.start();<br />
port.postMessage({ msg: 'hi!'});<br />
});<br />
});<br />
<br />
== Accept a connection request ==<br />
<br />
Only applications that have been previously selected by the user (when ''registerConnections'' is called) will get a connection request. Those applications will still be able to reject or accept the connection request. Accepting the connection has to be done explicitely by the receiver by calling ''accept()'' on the received object. Not calling ''accept()'' will implicitely reject the connection request.<br />
var port = null;<br />
navigator.setMessageHandler('connect', function(request) {<br />
if (request.origin != 'http://foobar.com') {<br />
return;<br />
}<br />
port = request.accept();<br />
port.onmessage = function(e) { alert(e.data); };<br />
port.start();<br />
});<br />
<br />
== Disconnect ==<br />
<br />
Calling ''close()'' on a port from either side will stop the connection.<br />
<br />
port.close();</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI&diff=505661
WebAPI
2013-01-25T18:58:06Z
<p>Mounir.lamouri: /* Planned for initial release of B2G (aka Basecamp) */</p>
<hr />
<div>The Mozilla WebAPI team is pushing the envelope of the web to include --- and in places exceed --- the capabilities of competing stacks.<br />
<br />
== Contributing ==<br />
<br />
WebAPI work is being tracked by Mozilla {{bug|673923}}. Find an dependent bug that interests you (and is unassigned), and assign it to yourself.<br />
<br />
== APIs ==<br />
<br />
Here's a list of the APIs that we're working on. Some of them are done, and some of them we haven't gotten further than acknowledge that we probably need them.<br />
<br />
===Planned for initial release of B2G (aka Basecamp)===<br />
<!--<br />
{{WebAPIPlatformAvailability|STATUS|PLATFORM}}<br />
<br />
STATUS = notPlanned | certifiedOnly | implemented | notImplemented | offByDefault<br />
PLATFORM = Desktop | Android | B2G<br />
<br />
See definition of template or mouseovers for definitions of status.<br />
--><br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
| [[WebAPI/WebTelephony|WebTelephony]]<br />
| {{bug|674726}}<br />
| Allow placing and answering phone calls as well as build in-call UI.<br />
| [[WebAPI/Security/WebTelephony|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dev.w3.org/2009/dap/vibration/ Vibration API] (W3C)<br />
| {{bug|679966}}<br />
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.<br />
| Done on B2G and Android. Standard in progress. <br>[[WebAPI/Security/Vibration|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebSMS|WebSMS]]<br />
| {{bug|674725}}<br />
| Send/receive SMS messages as well as manage messages stored on device.<br />
| Done on Android though might not ship there for security reasons. Done for B2G. <br>[[WebAPI/Security/SMS|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/IdleAPI|Idle API]]<br />
| {{bug|715041}}<br />
| Get notifications when user is idle.<br />
| Implemented. <br>[[WebAPI/Security/Idle|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/ScreenOrientation|Screen Orientation]]<br />
| {{bug|720794}} {{bug|740188}} {{bug|673922}}<br />
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.<br />
| Implemented! <br>[[WebAPI/Security/ScreenOrientation|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/SettingsAPI|Settings API]]<br />
| {{bug|678695}}<br />
| Set system-wide configurations that are saved permanently on the device.<br />
| Implementation done for content, chrome in progress. <br>[[WebAPI/Security/Settings|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/PowerManagementAPI|Power Management API]]<br />
| {{bug|708964}}<br />
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.<br />
| API design and implementation in progress. [[WebAPI/Security/PowerManagement|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/WebMobileConnection|Mobile Connection API]]<br />
| {{bug|729173}}<br />
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.<br />
| Complete.<br>[[WebAPI/Security/MobileConnection|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| TCP Socket API<br />
| {{bug|733573}}<br />
| Low-level TCP socket API. Will also include SSL support.<br />
| Implemented, e10s in progress. <br>[[WebAPI/Security/TCPSocket| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| Geolocation API<br />
| <br />
| Same API since Firefox 3.5<br />
| [[WebAPI/Security/Geolocation|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/ed980c42261c5f4a WiFi Information API]<br />
| <br />
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.<br />
| API drafted, implementation mostly complete. <br>[[WebAPI/Security/Wifi| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/DeviceStorageAPI|Device Storage API]]<br />
| {{bug|717103}}<br />
| Add/Read/Modify files stored on a central location on the device. For example the "pictures" folder on modern desktop platforms or the photo storage in mobile devices.<br />
| Complete <br>[[WebAPI/Security/DeviceStorage|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ContactsAPI|Contacts API]]<br />
| {{bug|674720}}<br />
| Add/Read/Modify the device contacts address book.<br />
| v1 Complete, v2 implementation in progress. <br>[[WebAPI/Security/Contacts|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html Mouse Lock API] (W3C)<br />
| {{bug|633602}}<br />
| Lock access to mouse and get access to movement deltas rather than coordinates.<br />
| API being standardized in W3C. Implementation complete.<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notPlanned|B2G}}<br />
|-<br />
| [https://developer.mozilla.org/en/OpenWebApps/The_JavaScript_API Open WebApps]<br />
| {{bug|697006}}<br />
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Opeb WebApps app store.<br />
| Complete <br>[[WebAPI/Security/OpenWebApp|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebBluetooth|WebBluetooth]]<br />
| {{bug|674737}}<br />
| Low level access to Bluetooth hardware.<br />
| API drafted, implementation underway for B2G headset only, must be complete by June/July.<br>[[WebAPI/Security/Bluetooth|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html Network Information API] (W3C)<br />
| {{bug|677166}} {{bug|713199}}<br />
| Get basic information about current network connectivity. Example: "How fast of a connection do I have?".<br />
| API in W3C. Implemented on Android, not yet started on B2G.<br> [[WebAPI/Security/NetworkInfo|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/battery/Overview.html Battery Status API] (W3C)<br />
| {{bug|678694}}<br />
| Information about battery charge level and if device is plugged in.<br />
| API in W3C. Implemented!<br> [[WebAPI/Security/Battery| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/AlarmAPI|Alarm API]]<br />
| {{bug|749551}}<br />
| Schedule a notification, or for an application to be started, at a specific time.<br />
| Implementation in progress.<br>[[WebAPI/Security/Alarm|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/BrowserAPI|Browser API]]<br />
| {{bug|693515}}<br />
| Enables implementing a browser completely in web technologies.<br />
| Implementation in progress. <br>[[WebAPI/Security/BrowserAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| Time/Clock API<br />
| {{bug|714357}}, {{bug|714358}} (notification upon time change)<br />
| Set current time. Timezone will go in the Settings API.<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]<br />
| {{WebAPIPlatformAvailability|notimplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notimplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebActivities|Web Activities]]<br />
| {{bug|715814}} {{bug|776027}} for Android<br />
| Delegate an activity to another application.<br />
| API finalized, implementation beginning.<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/PushAPI|Push Notifications API]]<br />
| {{bug|747907}}<br />
| Allow the platform to send notification messages to specific applications.<br />
| API drafted<br>[https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapps/Sff8MqFSO4E Security Discussion Active]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Permissions API<br />
| {{bug|707625}}<br />
| Allow Settings app to manage all app permissions in a centralized location<br />
| None <br>[[WebAPI/Security/PermissionsAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/PraULCQntqA WebFM API]<br />
| {{bug|749053}}<br />
| For FM radio feature. <br />
| [[WebAPI/Security/FMRadioAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/FileHandleAPI|FileHandle API]]<br />
| {{bug|726593}}<br />
| Writable files with locking.<br />
| Implemented!<br>No separate security review required.<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Network Stats API<br />
| {{bug|746069}}<br />
| Monitor data usage and expose data to privileged apps<br />
| Implemented!<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/WebPayment|WebPayment]]<br />
| {{bug|767818}}<br />
| Allow Open Web Apps to initiative payments and refunds for virtual goods. For the server implementation, see [[WebAPI/WebPayment|WebPaymentProvider]].<br />
| API design and implementation in progress.<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/IndexedDB/ IndexedDB] (W3C)<br />
| {{bug|553412}}<br />
| Client-side storage of structured data and high performance searches on this data<br />
| Complete<br>[[WebAPI/Security/indexDB|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ArchiveAPI|Archive API]]<br />
| {{bug|772434}}<br />
| Blob support for Zip file contents<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|offByDefault|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/ambient-light/ Ambient light sensor] (W3C)<br />
| {{bug|738465}}<br />
| Device light sensor support<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/2012/WD-proximity-20120712/ Proximity sensor] (W3C)<br />
| {{bug|738131}}<br />
| Device proximity sensor support<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
|}<br />
<br />
===Planned for the future===<br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
|-<br />
| [[WebAPI/ResourceLockAPI|Resource lock API]]<br />
| {{bug|697132}}<br />
| Prevent resources from being turned off, for example screen dimming, WiFi turning off, CPU going into sleep mode etc.<br />
| Complete. <br>[[WebAPI/Security/ResourceLock|Security Design Complete]]<br />
|-<br />
| UDP Datagram Socket API<br />
| {{bug|745283}}<br />
| Low-level UDP API.<br />
| Planning. (Not P1 for basecamp)<br />
|-<br />
| USB file-reading API<br />
| {{bug|748350}} {{bug|737153}}<br />
| When enabled, allows mounting of device storage as a USB filesystem on the tethered computer. <br />
| Must be complete by June/July.<br>Not really a webAPI, no security design.<br />
|-<br />
| [[Platform/Features/VideoConferencing|Camera API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway. <br>[[WebAPI/Security/Camera|Security Design Complete]]<br />
|-<br />
| [[Platform/Features/VideoConferencing|Peer to Peer API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway.<br />
|-<br />
| [[WebAPI/WebNFC|WebNFC]]<br />
| {{bug|674741}}<br />
| Low level access to NFC hardware. So far focusing on NDEF support.<br />
| API drafted, implementation underway for B2G (not Andorid/Desktop), must be complete by June/July. <br>[[WebAPI/Security/WebNFC|Security Design Complete]]<br />
|-<br />
| [[WebAPI/WebUSB|WebUSB]]<br />
| {{bug|674718}}<br />
| Low level access to USB hardware.<br />
| [[WebAPI/Security/WebUSB|Security Design Complete]]<br />
|-<br />
| HTTP-cache API<br />
|<br />
| Query what's stored in the browsers http-cache. Add/remove entries. Update expiration time. Get data directly from cache.<br />
| None<br />
|-<br />
| [[WebAPI/CalendarAPI|Calendar API]]<br />
| <br />
| Add/Read/Modify to the device calendar.<br />
| Implementation not planned ATM. If/when implemented, it should mimic [[WebAPI/ContactsAPI]].<br />
|-<br />
| Spellcheck API<br />
|<br />
| Enable webpages to check if a piece of text is correctly spelled as well as get suggestions for corrections.<br />
| None<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/3455cb056e40d095 Background services]<br />
|<br />
| Enable a web application to run in the background and perform tasks like syncing or respond to incoming messages.<br />
| Initial proposal of API.<br>[http://groups.google.com/group/mozilla.dev.webapps/browse_thread/thread/f54c52d015d90fd3 Security Design Active]<br />
|-<br />
| [[WebAPI/LogAPI|LogAPI]]<br />
| <br />
| Allows to register the user activity on the phone.<br />
| API proposal exists. Not planned for 1.0.<br />
|-<br />
| Keyboard/IME API<br />
| {{bug|737110}} ([https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post])<br />
| Enables implementing virtual keyboards.<br />
| Only exposed to certified apps for V1. Controlled via a setting instead.]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|}<br />
<br />
===Legend===<br />
{| cellpadding="2" border="1" <br />
|-<br />
| D = Desktop, A = Android, B = B2G<br />
|-<br />
| style="background-color:#8CF;"|only available to certified apps on this platform<br />
|-<br />
| style="background-color:#90ff90;"|implemented and preference enabled by default on on this platform<br />
|-<br />
| style="background-color:#FC6;"|implemented but requires explicitly turning on the preference on this platform<br />
|-<br />
| style="background-color:#ff9090;"|not implemented for this platform<br />
|-<br />
| style="background-color: silver;"|not currently planned for this platform<br />
|}<br />
<br />
== Process ==<br />
<br />
A draft specification and prototype implementation of new Web APIs will be discussed publicly on our mailing list and at our public meetings (see below). Once we have an API that we feel that we are satisfied with, we will submit the new API for standardization to the W3C.<br />
<br />
The goal is to standardize all APIs.<br />
<br />
== Design Principles ==<br />
<br />
=== Security ===<br />
<br />
Security will be a central aspect of all the APIs that we design. We wouldn't want any random webpage to be able to read the user's contact list, or able to issue arbitrary commands to any USB device which is hooked up to the user's computer.<br />
<br />
In some cases the solution will be to simply ask the user, like we do today for Geolocation for example. In other cases, where security implications are scarier or where describing the risk to the user is harder, we'll have to come up with better solutions.<br />
<br />
This is an area where we're still doing a lot of research. I really want to emphasize that we don't have all the answers yet, but that we plan on having them before we roll out these APIs to millions of users.<br />
<br />
=== Low Level vs. High Level ===<br />
<br />
One question that often comes up, is should we do low level APIs, like USB access, or high level APIs, like camera access?<br />
<br />
In many cases we are going to want to do both high level and low level APIs, with an initial priority on low level. High level APIs will let us create more friendly APIs, which are both easier to use for developers, and better for users since we can provide better security guarantees. However low level APIs will provide support for a wider range of hardware and use cases and will get the browser out of the critical path for innovation.<br />
<br />
== Plans ==<br />
<br />
=== Plans for 2013 ===<br />
<br />
* [[WebAPI/Storage2013|Storage discussion notes]]<br />
<br />
== Meetings ==<br />
<br />
Meeting Details:<br />
* [[WebAPI/{{#time: Y-m-d | tuesday}}|Agenda for this week (create below if it doesn't exist yet)]]<br />
* Tuesdays at [http://www.timeanddate.com/worldclock/fixedtime.html?msg=WebAPI+meeting&iso=20120612T10&p1=224&am=30 10:00 AM Pacific Time] (17:00 UTC)<br />
* [https://v.mozilla.com/flex.html?roomdirect.html&key=H1q64MSinl9H|'''WebAPI Vidyo room''']<br />
{{conf|98413}}<br />
* San Francisco: Golden Gate Bridge conference room (3rd floor)<br />
* Toronto: Spadina conference room<br />
* Join irc.mozilla.org [irc://irc.mozilla.org/webapi|IRC #webapi] for back channel<br />
<br />
Notes will be taken on etherpad: https://etherpad.mozilla.org/webapi-meetingnotes<br />
<br />
=== Meeting Notes ===<br />
Create a new weekly agenda from the [[WebAPI/0-0-0|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=WebAPI/0-0-0<br />
default={{#time: Y-m-d | tuesday}}<br />
prefix=WebAPI/<br />
</createbox><br />
<br />
'''''Remember:''''' You'll still need to link it below!<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2013 <br />
|-<br />
|<br />
* [[WebAPI/2013-01-22|January 22 2013]]<br />
* [[WebAPI/2013-01-15|January 15 2013]]<br />
* No meeting 2013-01-08 due to work week<br />
* No meeting 2013-01-01 due to New Year's Day holiday<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* No meeting 2012-12-25 due to Christmas holiday<br />
* [[WebAPI/2012-12-18|December 18 2012]]<br />
* [[WebAPI/2012-12-11|December 11 2012]]<br />
* [[WebAPI/2012-12-04|December 4 2012]]<br />
* [[WebAPI/2012-11-27|November 27 2012]]<br />
* [[WebAPI/2012-11-20|November 20 2012]]<br />
* [[WebAPI/2012-11-13|November 13 2012]]<br />
* No meeting 2012-11-06 due to work week<br />
* [[WebAPI/2012-10-30|October 30 2012]]<br />
* [[WebAPI/2012-10-23|October 23 2012]]<br />
* [[WebAPI/2012-10-16|October 16 2012]]<br />
* [[WebAPI/2012-10-09|October 9 2012]]<br />
* [[WebAPI/2012-10-02|October 2 2012]]<br />
* [[WebAPI/2012-09-25|September 25 2012]]<br />
* [[WebAPI/2012-09-18|September 18 2012]]<br />
* [[WebAPI/2012-09-11|September 11 2012]]<br />
* [[WebAPI/2012-09-04|September 4 2012]]<br />
* No meetings 2012-08-21 or 2012-08-28 due to work weeks<br />
* [[WebAPI/2012-08-14|August 14 2012]]<br />
* [[WebAPI/2012-08-07|August 7 2012]]<br />
* [[WebAPI/2012-07-31|July 31 2012]]<br />
* [[WebAPI/2012-07-24|July 24 2012]]<br />
* [[WebAPI/2012-07-17|July 17 2012]]<br />
* [[WebAPI/2012-07-10|July 10 2012]]<br />
* [[WebAPI/2012-07-03|July 3 2012]]<br />
* [[WebAPI/2012-06-26|June 26 2012]]<br />
* [[WebAPI/2012-06-19|June 19 2012]]<br />
* [[WebAPI/2012-06-12|June 12 2012]]<br />
* [[WebAPI/2012-06-05|June 5 2012]]<br />
* [[WebAPI/2012-05-29|May 29 2012]]<br />
* [[WebAPI/2012-05-22|May 22 2012]]<br />
* [[WebAPI/2012-05-15|May 15 2012]]<br />
* [[WebAPI/2012-05-08|May 8 2012]]<br />
* [[WebAPI/2012-05-01|May 1 2012]]<br />
* [[WebAPI/2012-04-24|April 24 2012]]<br />
* [[WebAPI/2012-04-10|April 10 2012]]<br />
* [[WebAPI/2012-04-03|April 3 2012]]<br />
* [[WebAPI/2012-03-20|March 20 2012]]<br />
* [[WebAPI/2012-03-13|March 13 2012]]<br />
* [[WebAPI/2012-03-06|March 6 2012]]<br />
* [[WebAPI/2012-02-28|February 28 2012]]<br />
* [[WebAPI/2012-02-14|February 14 2012]]<br />
* [[WebAPI/2012-02-07|February 7 2012]]<br />
* [[WebAPI/2012-01-31|January 31 2012]]<br />
* [[WebAPI/2012-01-24|January 24 2012]]<br />
* [[WebAPI/2012-01-17|January 17 2012]]<br />
* [[WebAPI/2012-01-10|January 10 2012]]<br />
* [[WebAPI/2012-01-03|January 3 2012]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
* [[WebAPI/2011-12-20|December 20 2011]]<br />
* [[WebAPI/2011-12-13|December 13 2011]]<br />
* [[WebAPI/2011-11-29|November 29 2011]]<br />
* [[WebAPI/2011-11-22|November 22 2011]]<br />
* [[WebAPI/2011-11-15|November 15 2011]]<br />
* [[WebAPI/2011-11-08|November 8 2011]]<br />
* [[WebAPI/2011-11-01|November 1 2011]]<br />
* [[WebAPI/2011-10-25|October 25 2011]]<br />
* [[WebAPI/2011-10-18|October 18 2011]]<br />
* [[WebAPI/2011-10-11|October 11 2011]]<br />
* [[WebAPI/2011-10-04|October 4 2011]]<br />
* [[WebAPI/2011-09-27|September 27 2011]]<br />
* [[WebAPI/2011-09-20|September 20 2011]]<br />
* [[WebAPI/2011-09-06|September 6 2011]]<br />
* [[WebAPI/2011-08-30|August 30 2011]]<br />
* [[WebAPI/2011-08-23|August 23 2011]]<br />
|}<br />
<br />
== Communication ==<br />
=== Mailing-list / Newsgroup ===<br />
<br />
You can subscribe to the mailing list here: https://lists.mozilla.org/listinfo/dev-webapi<br />
<br />
And the web based API is here: http://groups.google.com/group/mozilla.dev.webapi/topics<br />
<br />
The newsgroup lives on the news.mozilla.org server and has the name mozilla.dev.webapi<br />
<br />
=== IRC ===<br />
Find us on irc.mozilla.org in #webapi.<br />
[[IRC|Need help to use Mozilla IRC servers?]]<br />
<br />
=== See also ===<br />
* [http://hacks.mozilla.org/2011/08/introducing-webapi/ Introducing WebAPI] blog post by Robert Nyman<br />
* [http://hacks.mozilla.org/2011/08/more-details-about-the-webapi-effort/ More details about the WebAPI effort] blog post by Jonas Sicking<br />
* [http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ Mozilla joins the W3C DAP – WebAPI progress] blog post by Robert Nyman and Jonas Sicking<br />
* [http://johnhammink.blogspot.com/2011/11/lets-have-look-at-some-recently-landed.html A look at the latest WebAPIs] a demo/blog post by John Hammink<br />
<br />
=== Demos ===<br />
* [http://robnyman.github.com/battery/ Battery API by Robert Nyman]<br />
* [http://robnyman.github.com/vibration/ Vibration API by Robert Nyman]<br />
* [http://people.mozilla.org/~jhammink/webapi_test_pages/ Demos by John Hammink]<br />
* [http://colinfrei.com/networkapi.html Network API by Colin Frei]<br />
<br />
==== Other efforts ====<br />
* [http://www.w3.org/2009/dap/ W3C Device APIs (DAP)]. Mozilla developers are [http://www.w3.org/2000/09/dbwg/details?group=43696&public=1 members] of the DAP working group ([http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ announcement]).<br />
* [http://www.wacapps.net/specifications Wholesale Applications Community (WAC) ]<br />
<br />
== Subpages of {{FULLPAGENAME}}==<br />
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}<br />
<br />
[[Category:Web APIs]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=Festival2012/HumanAPI&diff=485393
Festival2012/HumanAPI
2012-11-06T18:34:42Z
<p>Mounir.lamouri: </p>
<hr />
<div><p>Human API's are here to help you.<br />
</p><br />
<table border="1"><br />
<tr><br />
<th>API Name</th><br />
<th>Hometown</th><br />
<th>I can help you with!</th><br />
<th>More about me</th><br />
</tr><br />
<br />
<tr><br />
<td>Chris McAvoy</td><br />
<td>Chicago</td><br />
<td>Finding other API's, a little Javascript, a little HTML, server side stuff, copywriting, high fiving.</td><br />
<td><a href="http://lonelylion.com">Blog</a> <a href="http://twitter.com/chmcavoy">@chmcavoy</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Jake Rake</td><br />
<td>Seattle</td><br />
<td>Doing super fast great things with <a href="http://popcorn.webmaker.org">Popcorn Maker</a>, musical improv, beatboxing.</td><br />
<td><a href="http://futuresoup.com">Blog</a> <a href="http://twitter.com/futuresoup">@futuresoup</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Mike "Pomax" Kamermans</td><br />
<td>Toronto</td><br />
<td>Getting the webmaking groove on with HTML, CSS and JavaScript, drawing cool things with Processing and Processing.js, speaking with funny accents</td><br />
<td><a href="http://twitter.com/TheRealPomax">@TheRealPomax</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Cynthia "Arty" Ng</td><br />
<td>Toronto</td><br />
<td>All about the web with HTML, CSS, and random bits of PHP for WordPress use. Good with content management, information architecture, and a hint of usability. Squeaks when poked</td><br />
<td><a href="http://twitter.com/TheRealArty">@TheRealArty</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Sunny Lee</td><br />
<td>San Francisco</td><br />
<td>Badges, what they are, what we can do with them, what the skeptics say, and how Open Badges works, Spanish, Korean, eating and cooking</td><br />
<td><a href="https://twitter.com/soletelee">@soletelee</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Ian Bicking</td><br />
<td>Minneapolis</td><br />
<td>Any of the fancy new browser features in the <a _fcknotitle="true" href="WebAPI">WebAPI</a>, Firefox OS/Open Web <a _fcknotitle="true" href="Apps">Apps</a>, <a _fcknotitle="true" href="WebRTC">WebRTC</a> (peer-to-peer audio/video in the browser), <a href="https://developer.mozilla.org/en-US/docs/persona">Persona/BrowserID logins</a>, <a href="http://en.wikipedia.org/wiki/Web_scraping">Scraping</a>, and other miscellany in Javascript and Python. Always willing to thoughtfully peer at the code you can't get working, offering helpful "hmms" and "ahas!"</td><br />
<td><a href="http://blog.ianbicking.org">A very quiet blog</a>, <a href="https://plus.google.com/+IanBicking">Google+ stream</a> (echoed to <a href="http://twitter.com/ianbicking">@ianbicking</a>)</td><br />
</tr><br />
<br />
<tr><br />
<td>Laura Hilliger</td><br />
<td>Dresden</td><br />
<td>Educator as Hacktivator. All about educators and technologists working together to change the world. I'm here to help educators get the most out of MozFest and help technologists understand learning and the implications that has on software/web stuff. Ask me about tech stuff or learning stuff or that area in the middle.</td><br />
<td><a href="http://zythepsary.com">blog</a> <a href="http://twitter.com/epilepticrabbit">@epilepticrabbit</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Rehan Dalal</td><br />
<td>Toronto</td><br />
<td>All kinds of HTML, CSS and JS trickery, PHP, design &amp; usability stuff and also high fives.</td><br />
<td><a href="http://meet-rehan.com">website</a> <a href="http://twitter.com/rehandalal">@rehandalal</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Heather Payne</td><br />
<td>Toronto</td><br />
<td>I've been working on Hive Learning Network stuff in Toronto since January, and I'm also the founder of &lt;a href="http://ladieslearningcode.com"&gt;Ladies Learning Code&lt;/a&gt; and &lt;a href="http://hackeryou.co"&gt;HackerYou&lt;/a&gt;, so I'm all about tech education. I've helped over 2000 adults and kids learn how to code in the past year, so I can share lots of things I've learned, plus tons of lesson plans and content.</td><br />
<td><a href="http://heatherpayne.ca">website</a> <a href="http://twitter.com/heatherpayne">@heatherpayne</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Dave Lester</td><br />
<td>San Francisco</td><br />
<td>Displaying badges, issuing badges using the <a href="https://github.com/davelester/WPBadger">WPBadger plugin</a> for WordPress, and integrating badges with other platforms. Python, PHP, Javascript. Actively seeking the best espresso in London.</td><br />
<td><a href="http://blog.davelester.org">blog</a> <a href="http://twitter.com/davelester">@davelester</a></td><br />
</tr><br />
<br />
<tr><br />
<td>Mounir Lamouri</td><br />
<td>London</td><br />
<td>Web technologies and Gecko in general. More specifically, DOM/HTML, Firefox OS, stuff like that. I am actively working with sandardisation bodies (W3C) and implements stuff in Gecko.</td><br />
<td>[http://blog.oldworld.fr blog] [http://twitter.com/mounirlamouri @mounirlamouri]</td><br />
</tr><br />
<br />
</table></div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=Standards&diff=477084
Standards
2012-10-07T19:18:44Z
<p>Mounir.lamouri: /* Web Applications Working Group */</p>
<hr />
<div>Welcome to Mozilla's Standards Participation page.<br />
<br />
Many at Mozilla participate in the development of open web standards, in a variety of different standards bodies. This is a directory of standards organizations (and sub-orgs like working groups) listing who at Mozilla is working with each.<br />
<br />
To encourage better web standards coordination and cross-pollination, the sections below are organized alphabetically by standards body, then alphabetically by working group (if any), then the list of Mozilla folks participating in that working group, optionally listing which particular specifications (or sections thereof) that they edit/author/contribute to.<br />
<br />
If you actively directly communicate/participate with a standards body (working group email list, IRC, wiki, and/or f2f meetings), please add yourself (and the specific standards body / working group if any).<br />
<br />
If you work in multiple working groups or with multiple standards organizations, list yourself in each, linking to your wiki User page.<br />
<br />
Thanks!<br />
<br />
— [[User:Tantek|Tantek]]<br />
<br />
= Web Standards Coordination =<br />
== general participation ==<br />
If you'd like to participate in some of these groups, or at least watch, learn, get up to speed, you can almost always do so by lurking on the public IRC channels and mailing lists that the groups use. Many (most?) standards mailing lists can often be overwhelming in quantity, depth so start with IRC as that's often lighter-weight and easier to watch for quick bits of info/knowledge.<br />
<br />
* Follow the instructions on the [[IRC|IRC wiki page]] to:<br />
** Set yourself up with a nickname and connection to <code>irc.mozilla.org</code>. <br />
* Add a connection to <code>irc.freenode.net</code> (also with '''[x] SSL''') where many standards discussions take place.<br />
* Add another connection to <code>irc.w3.org</code> but specifically port 6665 (unprotected, no nickname registration).<br />
* See each standards section below for which IRC channel(s) tend(s) to be used by folks working in each group.<br />
<br />
== ECMA ==<br />
* <span class="h-card vcard"><span class="fn">Brendan Eich</span></span> <br />
* dherman<br />
* <span class="h-card vcard"><span class="p-name fn">Allen Wirfs-Brock</span></span> (<span class="p-role role">Project Editor</span>)<br />
* Andreas Gal<br />
<br />
Specifications: ECMAScript 5, 5.1, 6, Harmony, etc.<br />
<br />
== IETF ==<br />
http://ietf.org/<br />
* ... no lead currently ...<br />
<br />
=== HyBi ===<br />
* HyBi (WebSockets)<br />
** <span class="h-card">Pat McManus</span><br />
** <span class="h-card">Chris Blizzard</span> (emeritus as of 2012-03-16)<br />
<br />
=== TLS (SSL) ===<br />
* <span class="h-card">[[User:Briansmith|Brian Smith]]</span><br />
<br />
=== VCARDDAV ===<br />
vcarddav group/list.<br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span></span><br />
Specifications: [[vCard4]]<br />
<br />
=== Opus ===<br />
* <span class="h-card"><span class="p-name">Jean-Marc Valin</span> (:<span class="p-nickname">jmspeex</span>)</span><br />
* <span class="h-card"><span class="p-name">Tim Terriberry</span> (:<span class="p-nickname">derf</span>)</span><br />
* <span class="h-card"><span class="p-name fn">Ralph Giles</span> (:<span class="p-nickname nickname">rillian</span>)</span><br />
<br />
=== rtcweb ===<br />
* <span class="h-card">Randell Jesup</span><br />
* <span class="h-card">Tim Terriberry</span><br />
* <span class="h-card">Ralph Giles</span><br />
<br />
== Khronos ==<br />
[http://www.khronos.org/webgl/ WebGL]<br />
* ... who at Mozilla is participating?<br />
<br />
== microformats ==<br />
http://microformats.org/ and [http://microformats.org/wiki microformats wiki]<br />
* irc://irc.freenode.net/microformats<br />
* email lists: http://microformats.org/discuss<br />
Community participants:<br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span> (<span class="role">founder</span>, <span class="role">admin</span>)</span><br />
* <span class="vcard"><span class="fn h-card">Michael Kaply</span></span><br />
* ...<br />
<br />
Specifications: <br />
* [[hCard]] - implemented in Firefox DOM<br />
* [[hCalendar]] - implemented in Firefox DOM<br />
* ... and many others.<br />
<br />
== OWF ==<br />
http://openwebfoundation.org/<br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span> (<span class="role">elected board member</span>)</span><br />
<br />
Specifications: <br />
* [http://openwebfoundation.org/legal/agreement/ Open Web Foundation Agreement] (OWFa)<br />
<br />
== W3C ==<br />
The [http://w3.org/ W3C] (World Wide Web Consortium) has Working Groups (WGs), Incubator Groups (IGs), Interest Groups (IGs), and Community Groups (WGs). See below for details and please add any/all of such groups here in alphabetical order by group name.<br />
* [[Standards/Participating in a W3C Working Group|Participating in a W3C Working Group]]<br />
* [[Standards/W3C Charter Development and Review|W3C Charter Development and Review]]<br />
* [https://www.w3.org/2000/09/dbwg/participants?org=35507&order=group Member-confidential (unfortunately) list of groups Mozilla participates in]<br />
<br />
=== Advisory Committee representative ===<br />
* <span class="vcard"><span class="fn h-card">[[User:Dbaron|David Baron]]</span></span><br />
<br />
=== Audio Incubator Group ===<br />
http://www.w3.org/2005/Incubator/audio/<br />
* <span class="vcard"><span class="fn h-card">Alistair MacDonald</span></span><br />
<br />
=== Audio Working Group ===<br />
* <span class="h-card">Matthew Gregan</span><br />
<br />
=== Browser Testing and Tools Working Group ===<br />
* <span class="h-card">David Burns</span><br />
* Clint Talbert (IRC: ctalbert)<br />
<br />
Specifications:<br />
* APIs (application programming interfaces) for use in automated testing of Web applications<br />
* APIs for use in troubleshooting and debugging of Web applications<br />
<br />
=== Core Mobile Web Platform Community Group ===<br />
http://www.w3.org/community/coremob/<br />
* <span class="h-card">[[User:Brendan|Brendan Eich]]</span><br />
* <span class="h-card">Jonas Sicking</span><br />
* <span class="h-card">Ragavan Srinivasan</span><br />
* <span class="h-card">Jet Villegas</span><br />
<br />
=== CSS (Cascading Style Sheets) Working Group ===<br />
http://w3.org/Style/CSS/<br />
* irc://irc.w3.org:6665/css<br />
* email: http://lists.w3.org/Archives/Public/www-style/<br />
Working group members related to Mozilla (also on w3c-css-wg)<br />
* <span class="vcard"><span class="fn h-card">[[User:Dbaron|David Baron]]</span></span><br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span></span><br />
* <span class="vcard"><span class="fn h-card">John Daggett</span></span><br />
* <span class="h-card">[[User:Fantasai|fantasai]]</span><br />
* <span class="vcard"><span class="fn h-card">Aryeh Gregor</span></span><br />
* <span class="h-card">Masayuki Nakano</span><br />
* <span class="vcard"><span class="fn h-card">[[User:Jetvillegas|Jet Villegas]]</span></span><br />
<br />
Additional www-style list participants related to Mozilla (anyone is welcome to join)<br />
* <span class="h-card">Robert O'Callahan</span><br />
* <span class="h-card vcard"><span class="fn">Henri Sivonen</span></span><br />
* <span class="h-card vcard"><span class="fn">Boris Zbarsky</span></span><br />
* ...<br />
<br />
Specifications: [[CSS21]], [[CSS3]]<br />
<br />
=== Federated Social Web Community Group ===<br />
http://www.w3.org/community/fedsocweb/<br />
was previously: Federated Social Web Incubator Group<br />
<br />
* <span class="h-card">David Ascher</span><br />
* <span class="h-card">[[User:Tantek|Tantek Çelik]]</span><br />
<br />
=== Games Community Group ===<br />
http://www.w3.org/community/games/<br />
* <span class="h-card">Rob Hawkes</span><br />
* <span class="h-card">Alan Kligman</span><br />
* <span class="h-card">Dan Mosedale</span><br />
* <span class="h-card">Bobby Richter</span><br />
<br />
=== Geolocation Working Group ===<br />
Geolocation Working Group (GEO) http://www.w3.org/2008/geolocation/<br />
* <span class="h-card">Doug Turner</span><br />
<br />
=== HTML Working Group ===<br />
HTML (HyperText Markup Language) Working Group (WG), sometimes listed as "HTML5 WG"<br />
http://www.w3.org/html/wg/<br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span></span><br />
* <span class="h-card">[[User:Mounir.lamouri|Mounir Lamouri]]</span><br />
* <span class="h-card vcard"><span class="fn">Jonas Sicking</span></span><br />
* <span class="h-card">Henri Sivonen</span><br />
* <span class="vcard"><span class="fn h-card">[[User:Jetvillegas|Jet Villegas]]</span></span><br />
* ...<br />
<br />
Specifications: [[HTML5]]<br />
<br />
=== HTML Speech Incubator Group ===<br />
* <span class="h-card">David Bolter</span><br />
* <span class="h-card">Olli Pettay</span><br />
<br />
=== Indie UI Events ===<br />
http://www.w3.org/2011/11/indie-ui-charter<br />
* <span class="h-card">David Bolter</span> (monitoring)<br />
<br />
=== Internationalization Working Group ===<br />
http://w3.org/International/<br />
* <span class="h-card">[[User:Fantasai|fantasai]]</span><br />
<br />
=== Media Fragments Working Group ===<br />
* <span class="h-card">Chris Double</span><br />
<br />
=== Protocols and Formats Working Group ===<br />
(Web Accessibility) Protocols and Formats Working Group (PF WG)<br />
* <span class="h-card">David Bolter</span><br />
<br />
=== SVG Working Group ===<br />
SVG (Scalable Vector Graphics) Working Group<br />
http://w3.org/SVG/<br />
* <span class="h-card">Cameron McCormack</span> (co-chair)<br />
* <span class="h-card">Brian Birtles</span><br />
* <span class="h-card">Jonathan Watt</span><br />
<br />
Specifications: SVG 1.1, SVG 2.0<br />
<br />
=== System Applications Working Group ===<br />
[http://www.w3.org/2012/sysapps/ SysApps] (System Applications) Working Group [https://www.w3.org/2000/09/dbwg/details?group=58119&public=1&order=org#_MozillaFoundation participants]:<br />
* <span class="h-card">[[User:Brendan|Brendan Eich]]</span><br />
* <span class="h-card">[[User:Sicking|Jonas Sicking]]</span><br />
* <span class="h-card">[[User:Mounir.lamouri|Mounir Lamouri]]</span><br />
* <span class="h-card">[[User:Tantek|Tantek Çelik]]</span><br />
<br />
=== Tracking Protection Working Group ===<br />
http://www.w3.org/2011/tracking-protection/<br />
* <span class="h-card">Aleecia McDonald</span> (WG chair)<br />
* <span class="h-card">Thomas Lowenthal</span><br />
<br />
=== Web Applications Working Group ===<br />
WebApps WG<br />
* <span class="h-card">Cameron McCormack</span><br />
* <span class="h-card">[[User:Anant|Anant Narayanan]]</span><br />
* <span class="h-card">Olli Pettay</span><br />
* <span class="h-card">Arun Ranganathan</span><br />
* <span class="h-card">[[User:Sicking|Jonas Sicking]]</span><br />
* <span class="h-card">[[User:Tantek|Tantek Çelik]]</span> (observer)<br />
* <span class="h-card">[[User:Mounir.lamouri|Mounir Lamouri]]</span><br />
<br />
Specifications: IndexedDB, Web IDL, XMLHttpRequest, DOM 3 Events, DOM 4, etc.<br />
<br />
=== Web Education Community Group ===<br />
http://www.w3.org/community/webed/<br />
<br />
* <span class="h-card">Schalk Neethling</span><br />
* <span class="h-card">Jérémie Patonnier</span><br />
* <span class="h-card">Janet Swisher</span><br />
<br />
=== Web Events Working Group ===<br />
* <span class="h-card">Matt Brubeck</span><br />
* <span class="h-card">Olli Pettay</span><br />
<br />
Specifications: Touch Events<br />
<br />
=== WebFonts Working Group ===<br />
* <span class="h-card">Jonathan Kew</span> (editor)<br />
* <span class="h-card">John Daggett</span><br />
<br />
=== Web Hypertext Application Technology Community Group ===<br />
* <span class="h-card">[[User:Dbaron|David Baron]]</span><br />
* <span class="h-card">[[User:Tantek|Tantek Çelik]]</span><br />
* <span class="h-card">Aryeh Gregor</span><br />
* <span class="h-card">Cameron McCormack</span><br />
See also the [http://www.w3.org/community/whatwg/participants complete list of participants].<br />
<br />
Specifications: HTML living standard as developed by the WHATWG.<br />
<br />
=== Web Media Text Tracks Community Group ===<br />
http://www.w3.org/community/texttracks/<br />
* <span class="h-card vcard"><span class="p-name fn">Ralph Giles</span> (:<span class="p-nickname nickname">rillian</span>)</span><br />
<br />
Specifications: something [http://www.whatwg.org/specs/web-apps/current-work/webvtt.html WebVTT]-ish, we hope.<br />
<br />
=== Web Notification Working Group ===<br />
* <span class="h-card">Doug Turner</span><br />
<br />
=== Web Performance Working Group ===<br />
* <span class="h-card">Cameron McCormack</span><br />
* <span class="h-card">Kyle Simpson</span><br />
<br />
Specifications: Timing control for script-based animations (requestAnimationFrame)<br />
<br />
=== WebRTC Working Group ===<br />
[[WebRTC]] (Web Real Time Communications) Working Group<br />
* <span class="h-card">Ralph Giles</span><br />
* <span class="h-card">Anant Narayanan</span><br />
* <span class="h-card">[[User:Mreavy|Maire Reavy]]</span><br />
* <span class="h-card"><span class="p-name">Eric Rescorla</span> (<span class="p-nickname">EKR</span>)</span><br />
* <span class="h-card">Tim Terriberry</span><br />
<br />
Specifications: Media capture & [http://www.w3.org/2011/04/webrtc-charter.html streaming APIs]<br />
<br />
=== Web Security Working Group (forming) ===<br />
* <span class="h-card">Brandon Sterne</span><br />
* <span class="h-card">Dan Veditz</span><br />
<br />
Specifications: CSP, CORS (jointly with WebApps WG)<br />
<br />
== WHATWG ==<br />
Web Hypertext Application Technologies Working Group - http://whatwg.org<br />
* <span class="vcard"><span class="fn h-card">[[User:Dbaron|David Baron]]</span></span><br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span></span><br />
* <span class="h-card">Brendan Eich</span><br />
* <span class="h-card">Mounir Lamouri</span><br />
* <span class="h-card">Jonas Sicking</span><br />
* <span class="h-card">Henri Sivonen</span><br />
* ...<br />
<br />
Web Editing specification - http://dvcs.w3.org/hg/editing/raw-file/tip/editing.html<br />
* <span class="vcard"><span class="fn h-card">[[User:Ehsan|Ehsan Akhgari]]</span></span><br />
<br />
= other =<br />
<br />
== CA/Browser Forum ==<br />
The [http://cabforum.org/ CA/Browser Forum] produces standards in the area of best practice and validation for certificate authorities.<br />
* <span class="h-card">[[User:Gerv|Gervase Markham]]</span><br />
* <span class="h-card">Sid Stamm</span><br />
* <span class="h-card">Kathleen Wilson</span><br />
<br />
== CalConnect ==<br />
Mozilla is a member of [http://www.calconnect.org/ CalConnect], The Calendaring and Scheduling Consortium, which is not actually affiliated w/ IETF or W3C but in practice drives development and interoperability testing of IETF specs:<br />
* RFC 5545 iCalendar (obsoletes RFC 2445).<br />
* RFC 4791 CalDAV Access protocol<br />
See their [http://www.calconnect.org/CD1104_Calendaring_Standards.shtml Index to Calendaring and Scheduling Standards] for other specific standards that CalConnect is involved with.<br />
<br />
== XMPP ==<br />
Mozilla is not formally associated with the XSF but has representation indirectly. http://xmpp.org/<br />
* <span class="vcard"><span class="fn h-card">[[User:bear|Mike Taylor]]</span> (<span class="nickname">bear</span>) - <span class="role">elected board member</span></span><br />
<br />
= emeritus =<br />
== people ==<br />
Former Mozillians who worked on standards:<br />
* <span class="h-card vcard"><span class="fn">Chris Blizzard</span></span> (til 2012-03-16)<br />
** [[#IETF]]<br />
** [[#rtcweb]]<br />
** [[#WebRTC_Working_Group]]<br />
<br />
== organizations and groups ==<br />
=== Federated Social Web Incubator Group ===<br />
2010-12-15 ... 2012-01-12 (transitioned to Federated Social Web Community Group)<br />
<br />
W3C Federated Social Web Incubator Group (FSW XG)<br />
http://www.w3.org/2005/Incubator/federatedsocialweb/ and [http://www.w3.org/2005/Incubator/federatedsocialweb/wiki/Main_Page FSW wiki]<br />
* <span class="h-card">David Ascher</span><br />
* <span class="h-card">[[User:Mixedpuppy|Shane Caraveo]]</span><br />
* <span class="vcard"><span class="fn h-card">[[User:Tantek|Tantek Çelik]]</span></span><br />
<br />
= subpages of {{FULLPAGENAME}}=<br />
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}<br />
<br />
= related =<br />
See also:<br />
* [[Events]] - which include web standards-related events.<br />
* [[SEO/Standards]] - how to use standards to improve/optimize search results</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/schedule&diff=469004
MozCampEU2012/schedule
2012-09-09T08:56:15Z
<p>Mounir.lamouri: /* Sunday, September 9th */</p>
<hr />
<div>=MozCamp 2012 Schedule=<br />
<br />
==Thursday, September 6th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott from mid-day onwards on Thursday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
Wifi Information for Floor 2:<br />
network: MOZCAMP/ code: MOZCAMP2012<br />
<br />
==Friday, September 7th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott for the majority of Friday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
Wifi Information for Floor 2:<br />
network: MOZCAMP/ code: MOZCAMP2012<br />
<br />
===Tour of Fabryka (MozCamp Venue)===<br />
<br />
FABRYKA TRZCINY<br />
‪(Otwocka 14‬‬‬‬‬‬, Warsaw)<br />
from 3pm - 4pm<br />
<br />
For directions on how to get to the venue from the Marriott, please see [https://wiki.mozilla.org/MozCampEU2012/Logistics#Travel_between_locations here]<br />
<br />
===MozCamp Welcome Event===<br />
<br />
Champions Sports Bar & Restaurant (Aleje Jerozolimskie 65/79) from 6:30 - 10:30pm<br />
<br />
'''Champions is situated within the same complex as the Marriott and can be easily reached by following the directions provided for you in the hotel lobby.'''<br />
<br />
==Saturday, September 8th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat Breakfast. Breakfast is located in the Lilla Weneda Restaurant on floor 2 and opens at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp + registration (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:00 - 09:15<br />
|all= Welcome to MozCamp<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:15 - 10:00am<br />
|all= Mobilize Mozillians [Mitchell Baker and Tristan Nitot]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=10:00 - 11:00am<br />
|all= Product Vision + Demonstration for Firefox Desktop, OS, and Apps [Jay Sullivan]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:00 - 11:30am<br />
|all= Market Context [David Slater]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:30 - Noon<br />
|all= Next Generation of Mozilla [Mark Surman]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=Noon - 12:45<br />
|all=[http://community.doesthings.com/quilt/quilt.html Community Quilt Presentations] - A list of presenters can be found [https://etherpad.mozilla.org/mozcampeu2012-community-presenters here]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=12:45 - 13:45pm<br />
|all=Lunch [[#Building_a_Webmaker_Special_Interest_Group_for_ReMo| *]]<br />
}}<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:00 - 15:00<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/Workshop_Onboarding_New_Volunteers Onboarding New Volunteers Workshop]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/evolutionofmozillabrand Evolution of the Mozilla Brand]<br />
|Room 2= [[MozCampEU2012/Brainstorm_Workshop:_Firefox,_Mobile,_Apps_and_B2G_Campaigns_and_Story_mapping|Brainstorm Workshop: Firefox, Mobile, Apps and B2G Campaigns and Story mapping]]<br />
|Room 3= [[MozCampEU2012/How_to_Debug_Memory_Leaks_in_Addons_and_Websites|How to Debug Memory Leaks in Addons and Websites]]<br />
|Room 4= [[MozCampEU2012/B2G_Localization_Workshop|B2G Localization Workshop]]<br />
|Room 5= [https://wiki.mozilla.org/MozCampEU2012/Technical_Resources_for_Firefox_OS Technical Resources for Firefox OS, Apps & Mozilla Marketplace] combined with [https://wiki.mozilla.org/MozCampEU2012/Marketplace_Reviews Marketplace Reviews]<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/feedback_and_onboarding Sharing feedback, aligning our efforts, and creating a smooth entry into Mozilla]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Manifesto_Evolution Evolution of the Mozilla Manifesto]<br />
|Room 2= ... continued <hr><small>3:25pm</small><br/>[[MozCampEU2012/bizdevmobiledesktopcommunity|How the Community can help Business Development identify and engage with potential partners to grow Firefox Desktop and Mobile]] <br />
|Room 3= [[MozCampEU2012/Schedule/Desktopandmobile/All-About-Performance|All About Performance]]<br />
|Room 4= [[MozCampEU2012/Make_Sure_Your_Code_Works|Make Sure Your Code Works]]<br />
|Room 5= 3:30pm [[FirefoxOS-launch| Firefox OS Launch]]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05-16:30<br />
|all=Coffee Break<br />
}}<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:35 - 17:30<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/ReMo_Next_Steps Mozilla Reps: update and next steps] <br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/New-Skies-For-Thunderbird New Skies For Thunderbird]<br />
|Room 2= [[MozCampEU2012/Firefox-for-Android-community-marketing-plan|Firefox for Android community marketing plan & updates]]<br />
|Room 3= <small>4:35pm</small><br/>[[MozCampEU2012/WebRTC-demystified|WebRTC Demystified: What is it & how can you help?]]<br />
<hr><small>5:00pm</small><br/><br />
[[MozCampEU2012/FirefoxDesktop:WriteCode|Write Code For Firefox Desktop]]<br />
|Room 4=[[MozCampEU2012/Schedule/appsandb2g/Profiling_on_B2G|Profiling on B2G and mobile]]<br />
<hr><small>5:00pm</small><br/><br />
[https://wiki.mozilla.org/MozCampEU2012/T_Mobile_API T-Mobile presents OpenAPI]<br />
|Room 5= [https://wiki.mozilla.org/MozCampEU2012/how-to-create-new-web-apis How to create new Web APIs] and [https://wiki.mozilla.org/MozCampEU2012/Implementing-A-WebApi-in-JS Implementing a WebAPI in JavaScript]<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:35 - 18:30<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/LocalizingDesign Localizing Design: Sandstone in Your Community]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/15_years_session 15 Years of Mozilla Campaign Ideas]<br />
|Room 2= [[MozCampEU2012/Tigerteam|Tiger Team: Help build marketing campaigns to attract new Firefox Desktop users in your country]]<br />
|Room 3= [[MozCampEU2012/Firefox_Stability_Programs|Firefox Stability Program: How we use crash statistics, telemetry, and other measures to improve the stability of Firefox and 3rd-party software]]<br />
|Room 4= [[MozCampEU2012/Testing_B2G_Desktop_Builds|Testing B2G Desktop Builds]]<br />
|Room 5= [https://wiki.mozilla.org/MozCampEU2012/b2gidentitydevelopment B2G Identity Development Process]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:35 - 19:30 <br />
|all=[[MozCampEU2012/Community Health Townhall|Community Health Townhall]]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=19:30 - 20:00 <br />
|all= Transport to Dinner (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for transportation details from the venue to the restaurant)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=20:00 - 23:00 <br />
|all= Dinner<br />
}}<br />
|}<br />
<br />
<br><br />
<br><br />
===Office Hours with Mitchell Baker===<br />
<br />
Mitchell Baker will be hosting office hours at MozCamp on '''Saturday, September 8th''' from:<br />
<br />
*2:00 - 3:00pm<br />
*5:30 - 6:35pm<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
'''Sign-up to meet with Mitchell [https://etherpad.mozilla.org/mozcampeu-mitchell-officehours here]'''<br />
<br />
Please stop by to ask her questions, chat about something that is important to you, and have your picture taken with Mitchell.<br />
<br />
===Contributor Spotlights===<br />
<br />
Please sign-up to be interviewed about your experience as a Mozillian which could be utilized around our 15 year anniversary, Brand Engagement, on-boarding, the Get Involved Page and more! Sign-up to take part [https://wiki.mozilla.org/MozCampEU2012/ContributorSpotlights here]<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
===Building a Webmaker Special Interest Group for ReMo===<br />
Calling all Reps interested in the Webmaker initiative! Please '''join us during lunch''' to '''[[MozCampEU2012/webmaker_sig | discuss the scope, goals, and initial framework of a Webmaker SIG within the ReMo program]]'''. All outputs will be documented on the Reps wiki. This session looks to the experience of Mozilla Reps to step into leadership roles in shaping the SIG. This lunch gathering will take place in Grow Mozilla Room 1.<br />
<br />
==Sunday, September 9th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat breakfast. Breakfast is located at the Lilla Weneda Restaurant on floor 2 and starts at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:30 - 11:00<br />
|all=Leadership Panel (please keep track of the notes and feedback around the discussion [https://etherpad.mozilla.org/MozCampEU2012-LeadershipQA-Feedback here])<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=11:05 - 12:00<br />
|Main= <small>11:05</small> [https://wiki.mozilla.org/MozCampEU2012/Pontoon Pontoon: Are You Ready?]<hr><small>11:35</small> [https://wiki.mozilla.org/MozCampEU2012/Contributing_to_Mozilla_Websites Contributing to Mozilla Websites]<br />
|Room 1= <small>11:05</small> [https://wiki.mozilla.org/MozCampEU2012/SUMO_Magnet The SUMO Magnet]<hr><small>11:30</small> [https://wiki.mozilla.org/MozCampEU2012/WebFWD-Grow WebFWD: Growing Mozilla by supporting outside projects]<br />
|Room 2= [[MozCampEU2012/Brainstorming:Firefox_User_Experience_(UX)_Feedback)|Brainstorming: User Experience (UX) Feedback]]<br />
|Room 3=<small>11:05</small><br/><br />
[[MozCampEU2012/Firefox_for_Android_QA|Quality Assurance - Firefox for Android]]<br />
<small>11:35</small><br/><br />
[[MozCampEU2012/Schedule/Desktopandmobile/Build_and_Release|Mozilla Build + Release]]<br />
|Room 4=<small>11:05</small><br/><br />
[[MozCampEU2012/FirefoxOS_support|B2G Desktop Install-Fest - Firefox OS User Support]]<br />
<br/><br />
|Room 5=<small>11:30</small><br><br />
[https://wiki.mozilla.org/MozCampEU2012/What-kind-of-apps-should-I-build Searching for success: What type of mobile apps should I build?]<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=12:05 - 13:00<br />
|Main= <small>12:05</small> [https://wiki.mozilla.org/MozCampEU2012/Contributing_to_Mozilla_Websites Contributing to Mozilla Websites] (Ctd.)<hr><small>12:30</small> [https://wiki.mozilla.org/MozCampEU2012/moz-summer-of-code-experience Experience from hosting Mozilla Summer Of Code parties]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Minors_and_Mozilla Working with Minors]<br />
|Room 2= [[MozCampEU2012/Take-part-in-the-Firefox-for-Android-story|Using local knowledge to grow Firefox for Android ]]<br />
|Room 3=[[MozCampEU2012/Release-Management|Here come the trains: releasing mozilla products, growing the Mozilla community]]<br />
|Room 4= <small>12:05</small> [https://wiki.mozilla.org/MozCampEU2012/B2G_Game_Development B2G Game Development] <hr><small>12:30</small> [https://wiki.mozilla.org/MozCampEU2012/WebAPI_Status WebAPI Status]<br />
|Room 5= [https://wiki.mozilla.org/MozCampEU2012/B2G_and_Apps_Security B2G and Apps Security]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=13:05 - 14:00<br />
|all=Lunch<br />
}}<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:05 - 15:00<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/Media/Communications_Training_for_Mozilla_Communications_Reps Communications Training for Mozilla Communications Reps]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Diving_into_Mozilla_Communities Diving into Mozilla Communities]<br />
|Room 2= [[MozCampEU2012/FirefoxDesktop:IntroducingSocialAPI|Introducing the Social API]]<br />
|Room 3=<small>2:00</small><br/>open<br />
<small>2:30</small><br/><br />
[[MozCampEU2012/Schedule/Desktopandmobile/Firefox-L10n-Under-Rapid-Release|Firefox L10n under Rapid Release]]<br />
|Room 4= [[MozCampEU2012/Stop-Building-Todo-Apps|Make Something Real for Firefox OS with Mozilla App Templates]]<br />
|Room 5= [[MozCampEU2012/Design-Principles-behind-the-Firefox-OS-UX|Design Principles behind the Firefox OS UX]]<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/Capturing_Mozillians_Knowledge Capturing Mozillians' Knowledge]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Security_and_Privacy_Roadmap Security + Privacy Roadmap + You]<br />
|Room 2= [[MozCampEU2012/Opening_Up_the_Mobile_Web_for_Firefox|Hands-on: Opening Up the Mobile Web for Firefox]]<br />
|Room 3=<small>3:00</small><br/>[[MozCampEU2012/Efficient_localization_with_Translate_Toolkit_-_the_example_of_Fulah|Efficient localization with Translate Toolkit-example of Fulah]]<br />
<small>3:30</small><br/><br />
[[MozCampEU2012/Add-ons-Back-On-Top|Add-ons back on top! Get excited about upcoming UI changes in Firefox and how they will give add-on developers much more interesting ways to integrate with the Firefox UI]] <br />
|Room 4=[[MozCampEU2012/How_marketing_Firefox_OS_is_different|How marketing Firefox OS is different (and how you can help!)]]<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/Javascript-optimizations-for-your-Apps Javascript Optimizations]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05 - 16:35<br />
|all=Coffee Break + Open Working Time <br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:40 - 17:40<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/evangelism-reps-training Evangelism Reps training - become a speaker/blogger/face of Mozilla]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Future_of_Discussion_Forums Future of Discussion Forums]<br />
|Room 2= [[MozCampEU2012/Pocket_Sized_Add-ons:_Extension_development_for_Firefox_Mobile|Pocket Sized Add-ons: Extension development for Firefox Mobile]]<br />
|Room 3=<small>4:40</small><br/>[[MozCampEU2012/Schedule/Desktopandmobile/Firefox-for-Android-support|Firefox for Android Support]]<br />
<small>5:10</small><br/><br />
[[MozCampEU2012/Firefox_Flicks_2013|Firefox Flicks 2013]]<br />
|Room 4=[https://wiki.mozilla.org/MozCampEU2012/How_to_User_Test_Your_App How to User Test Your App]<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/Web-Apps-and-Students-:-the-magic-formula Web apps and students: the magic formula]<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:45 - 18:40<br />
|Main= [https://wiki.mozilla.org/MozCampEU2012/What-is-the-open-web-and-why-is-it-important What is the open web + why is it important]<br />
|Room 1= [https://wiki.mozilla.org/MozCampEU2012/Mozilla_and_Arabic_region_:_between_priorities,_unexplored_areas_and_new_challenges_! Mozilla and Arabic region]<br />
|Room 2=<br />
|Room 3=MDP<br />
|Room 4=[https://wiki.mozilla.org/MozCampEU2012/Exploring_Touchevents Exploring Touchevents]<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/State-Of-Firefox-OS Firefox OS Q&A]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:40 - 19:00<br />
|all=Closing<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:30 - 20:00<br />
|all= Commute back to hotel (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the venue returning to the hotel)<br />
}}<br />
|}<br />
<br />
===Keeping the Conversations Going...===<br />
<br />
A room will be available at the Marriott on Sunday evening to continue the discussions + workshops as needed.<br />
<br />
Location: Wawel Room (2nd Floor) at the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
Time: 7pm-1am<br />
<br />
Sign-ups: If you would like to sign-up to utilize this room, please do so [https://etherpad.mozilla.org/mozcampeu-breakouts-sundayevening here]<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Warsaw Marriott Lobby from 7-10pm<br />
<br />
'''Your weekend transportation pass will expire on Sunday night. If need an additional ticket to return to the airport on Monday, please stop by the reception table on Sunday night to pick one up.'''<br />
<br />
=Additional Events Occurring around MozCamp=<br />
<br />
For more information on Mozilla events that may be occurring in Warsaw around MozCamp, please see [https://wiki.mozilla.org/MozCampEU2012/schedule/companion_events here]<br />
<br />
*Please note that unless indicated, these events are by invitation only. <br />
*If interested in attending one of these events, please contact the event organizer directly.</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI&diff=469002
WebAPI
2012-09-09T08:48:47Z
<p>Mounir.lamouri: Idle API is now certified only</p>
<hr />
<div>The Mozilla WebAPI team is pushing the envelope of the web to include --- and in places exceed --- the capabilities of competing stacks.<br />
<br />
== Contributing ==<br />
<br />
WebAPI work is being tracked by Mozilla {{bug|673923}}. Find an dependent bug that interests you (and is unassigned), and assign it to yourself.<br />
<br />
== APIs ==<br />
<br />
Here's a list of the APIs that we're working on. Some of them are done, and some of them we haven't gotten further than acknowledge that we probably need them.<br />
<br />
===Planned for initial release of B2G (aka Basecamp)===<br />
<!--<br />
{{WebAPIPlatformAvailability|STATUS|PLATFORM}}<br />
<br />
STATUS = notPlanned | certifiedOnly | implemented | notImplemented | offByDefault<br />
PLATFORM = Desktop | Android | B2G<br />
<br />
See definition of template or mouseovers for definitions of status.<br />
--><br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
| [[WebAPI/WebTelephony|WebTelephony]]<br />
| {{bug|674726}}<br />
| Allow placing and answering phone calls as well as build in-call UI.<br />
| [[WebAPI/Security/WebTelephony|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dev.w3.org/2009/dap/vibration/ Vibration API] (W3C)<br />
| {{bug|679966}}<br />
| Control device vibration for things like haptic feedback in games. Not intended to solve things like vibration for notification.<br />
| Done on B2G and Android. Standard in progress. <br>[[WebAPI/Security/Vibration|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebSMS|WebSMS]]<br />
| {{bug|674725}}<br />
| Send/receive SMS messages as well as manage messages stored on device.<br />
| Done on Android though might not ship there for security reasons. Done for B2G. <br>[[WebAPI/Security/SMS|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/IdleAPI|Idle API]]<br />
| {{bug|715041}}<br />
| Get notifications when user is idle.<br />
| Implemented. <br>[[WebAPI/Security/Idle|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/ScreenOrientation|Screen Orientation]]<br />
| {{bug|720794}} {{bug|740188}} {{bug|673922}}<br />
| Get notification when screen orientation changes as well as control which screen orientation a page/app wants.<br />
| Implemented! <br>[[WebAPI/Security/ScreenOrientation|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/SettingsAPI|Settings API]]<br />
| {{bug|678695}}<br />
| Set system-wide configurations that are saved permanently on the device.<br />
| Implementation done for content, chrome in progress. <br>[[WebAPI/Security/Settings|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/PowerManagementAPI|Power Management API]]<br />
| {{bug|708964}}<br />
| Turn on/off screen, cpu, device power, etc. Listen and inspect resource lock events.<br />
| API design and implementation in progress. [[WebAPI/Security/PowerManagement|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/WebMobileConnection|Mobile Connection API]]<br />
| {{bug|729173}}<br />
| Expose signal strength, operator, etc for GSM and other mobile connections. This does not cover WiFi.<br />
| Complete.<br>[[WebAPI/Security/MobileConnection|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| TCP Socket API<br />
| {{bug|733573}}<br />
| Low-level TCP socket API. Will also include SSL support.<br />
| Implemented, e10s in progress. <br>[[WebAPI/Security/TCPSocket| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| Geolocation API<br />
| <br />
| Same API since Firefox 3.5<br />
| [[WebAPI/Security/Geolocation|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/ed980c42261c5f4a WiFi Information API]<br />
| <br />
| Privileged API to get a list of available WiFi networks. Also get signal strength and name of currently connected network, etc.<br />
| API drafted, implementation mostly complete. <br>[[WebAPI/Security/Wifi| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [[WebAPI/DeviceStorageAPI|Device Storage API]]<br />
| {{bug|717103}}<br />
| Add/Read/Modify files stored on a central location on the device. For example the "pictures" folder on modern desktop platforms or the photo storage in mobile devices.<br />
| Complete <br>[[WebAPI/Security/DeviceStorage|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|offByDefault|Desktop}}<br />
| {{WebAPIPlatformAvailability|offByDefault|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ContactsAPI|Contacts API]]<br />
| {{bug|674720}}<br />
| Add/Read/Modify the device contacts address book.<br />
| v1 Complete, v2 implementation in progress. <br>[[WebAPI/Security/Contacts|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/pointerlock/raw-file/default/index.html Mouse Lock API] (W3C)<br />
| {{bug|633602}}<br />
| Lock access to mouse and get access to movement deltas rather than coordinates.<br />
| API being standardized in W3C. Implementation complete.<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notPlanned|B2G}}<br />
|-<br />
| [https://developer.mozilla.org/en/OpenWebApps/The_JavaScript_API Open WebApps]<br />
| {{bug|697006}}<br />
| Install web apps and manage installed webapps. Also allows an installed webapp to get payment information. Everything needed to build a Opeb WebApps app store.<br />
| Complete <br>[[WebAPI/Security/OpenWebApp|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebBluetooth|WebBluetooth]]<br />
| {{bug|674737}}<br />
| Low level access to Bluetooth hardware.<br />
| API drafted, implementation underway for B2G headset only, must be complete by June/July.<br>[[WebAPI/Security/Bluetooth|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/network-api/index.html Network Information API] (W3C)<br />
| {{bug|677166}} {{bug|713199}}<br />
| Get basic information about current network connectivity. Example: "How fast of a connection do I have?".<br />
| API in W3C. Implemented on Android, not yet started on B2G.<br> [[WebAPI/Security/NetworkInfo|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [http://dvcs.w3.org/hg/dap/raw-file/tip/battery/Overview.html Battery Status API] (W3C)<br />
| {{bug|678694}}<br />
| Information about battery charge level and if device is plugged in.<br />
| API in W3C. Implemented on Android, Linux, Windows, B2G.<br> [[WebAPI/Security/Battery| Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<sup>[[#BatteryOnMac|1]]</sup><br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/AlarmAPI|Alarm API]]<br />
| {{bug|749551}}<br />
| Schedule a notification, or for an application to be started, at a specific time.<br />
| Implementation in progress.<br>[[WebAPI/Security/Alarm|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| Browser API<br />
| {{bug|693515}}<br />
| Enables implementing a browser completely in web technologies.<br />
| Implementation in progress. <br>[[WebAPI/Security/BrowserAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|-<br />
| Time/Clock API<br />
| {{bug|714357}}, {{bug|714358}} (notification upon time change)<br />
| Set current time. Timezone will go in the Settings API.<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/f382abb068abd4c5 API proposed]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<sup>[[#TimeClock|2]]</sup><br />
| {{WebAPIPlatformAvailability|implemented|Android}}<sup>[[#TimeClock|2]]</sup><br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/WebActivities|Web Activities]]<br />
| {{bug|715814}}<br />
| Delegate an activity to another application.<br />
| API finalized, implementation beginning.<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [[WebAPI/PushAPI|Push Notifications API]]<br />
| {{bug|747907}}<br />
| Allow the platform to send notification messages to specific applications.<br />
| API drafted<br>[https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapps/Sff8MqFSO4E Security Discussion Active]<br />
| {{WebAPIPlatformAvailability|notImplemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|notImplemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Permissions API<br />
| {{bug|707625}}<br />
| Allow Settings app to manage all app permissions in a centralized location<br />
| None <br>[[WebAPI/Security/PermissionsAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/PraULCQntqA WebFM API]<br />
| {{bug|749053}}<br />
| For FM radio feature. <br />
| [[WebAPI/Security/FMRadioAPI|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [[WebAPI/FileHandleAPI|FileHandle API]]<br />
| {{bug|726593}}<br />
| Writable files with locking.<br />
| Implemented!<br>No separate security review required.<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| Network Stats API<br />
| {{bug|746069}}<br />
| Monitor data usage and expose data to privileged apps<br />
| Under review.<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|notImplemented|B2G}}<br />
|-<br />
| [[WebAPI/WebPayment|WebPayment]]<br />
| {{bug|767818}}<br />
| Allow Open Web Apps to initiative a payments and refunds for virtual goods<br />
| API design and implementation in progress.<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/IndexedDB/ IndexedDB] (W3C)<br />
| {{bug|553412}}<br />
| Client-side storage of structured data and high performance searches on this data<br />
| Complete<br>[[WebAPI/Security/indexDB|Security Design Complete]]<br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [[WebAPI/ArchiveAPI|Archive API]]<br />
| {{bug|772434}}<br />
| Blob support for Zip file contents<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|implemented|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/ambient-light/ Ambient light sensor] (W3C)<br />
| {{bug|738465}}<br />
| Device light sensor support<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
| [http://www.w3.org/TR/2012/WD-proximity-20120712/ Proximity sensor] (W3C)<br />
| {{bug|738131}}<br />
| Device proximity sensor support<br />
| API drafted, implementation complete. <br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|implemented|Android}}<br />
| {{WebAPIPlatformAvailability|implemented|B2G}}<br />
|-<br />
|}<br />
<br />
# {{Anchor|BatteryOnMac}} Battery API not yet implemented on OS X (see {{bug|696045}}).<br />
# {{Anchor|TimeClock}} Time change notifications are planned on all plaforms but setting the time will only be on B2G.<br />
<br />
===Planned for the future===<br />
{| cellpadding="2" border="1"<br />
|-<br />
! API<br />
! Bugs<br />
! Description<br />
! Progress<br />
! colspan="3"|Availability<br />
|-<br />
|-<br />
| [[WebAPI/ResourceLockAPI|Resource lock API]]<br />
| {{bug|697132}}<br />
| Prevent resources from being turned off, for example screen dimming, WiFi turning off, CPU going into sleep mode etc.<br />
| Complete. <br>[[WebAPI/Security/ResourceLock|Security Design Complete]]<br />
|-<br />
| UDP Datagram Socket API<br />
| {{bug|745283}}<br />
| Low-level UDP API.<br />
| Planning. (Not P1 for basecamp)<br />
|-<br />
| USB file-reading API<br />
| {{bug|748350}} {{bug|737153}}<br />
| When enabled, allows mounting of device storage as a USB filesystem on the tethered computer. <br />
| Must be complete by June/July.<br>Not really a webAPI, no security design.<br />
|-<br />
| [[Platform/Features/VideoConferencing|Camera API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway. <br>[[WebAPI/Security/Camera|Security Design Complete]]<br />
|-<br />
| [[Platform/Features/VideoConferencing|Peer to Peer API]]<br />
| <br />
| This is part of the larger WebRTC effort. This is a big piece of work so see the link.<br />
| API and implementation underway.<br />
|-<br />
| [[WebAPI/WebNFC|WebNFC]]<br />
| {{bug|674741}}<br />
| Low level access to NFC hardware. So far focusing on NDEF support.<br />
| API drafted, implementation underway for B2G (not Andorid/Desktop), must be complete by June/July. <br>[[WebAPI/Security/WebNFC|Security Design Complete]]<br />
|-<br />
| [[WebAPI/WebUSB|WebUSB]]<br />
| {{bug|674718}}<br />
| Low level access to USB hardware.<br />
| [[WebAPI/Security/WebUSB|Security Design Complete]]<br />
|-<br />
| HTTP-cache API<br />
|<br />
| Query what's stored in the browsers http-cache. Add/remove entries. Update expiration time. Get data directly from cache.<br />
| None<br />
|-<br />
| [[WebAPI/CalendarAPI|Calendar API]]<br />
| <br />
| Add/Read/Modify to the device calendar.<br />
| Implementation not planned ATM. If/when implemented, it should mimic [[WebAPI/ContactsAPI]].<br />
|-<br />
| Spellcheck API<br />
|<br />
| Enable webpages to check if a piece of text is correctly spelled as well as get suggestions for corrections.<br />
| None<br />
|-<br />
| [http://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/3455cb056e40d095 Background services]<br />
|<br />
| Enable a web application to run in the background and perform tasks like syncing or respond to incoming messages.<br />
| Initial proposal of API.<br>[http://groups.google.com/group/mozilla.dev.webapps/browse_thread/thread/f54c52d015d90fd3 Security Design Active]<br />
|-<br />
| [[WebAPI/LogAPI|LogAPI]]<br />
| <br />
| Allows to register the user activity on the phone.<br />
| API proposal exists. Not planned for 1.0.<br />
|-<br />
| Keyboard/IME API<br />
| {{bug|737110}} ([https://groups.google.com/forum/?fromgroups#!topic/mozilla.dev.webapi/Vs3-HGv9NNw WebAPI mailing list post])<br />
| Enables implementing virtual keyboards.<br />
| Only exposed to certified apps for V1. Controlled via a setting instead.]<br />
| {{WebAPIPlatformAvailability|notPlanned|Desktop}}<br />
| {{WebAPIPlatformAvailability|notPlanned|Android}}<br />
| {{WebAPIPlatformAvailability|certifiedOnly|B2G}}<br />
|}<br />
<br />
===Legend===<br />
{| cellpadding="2" border="1" <br />
|-<br />
| D = Desktop, A = Android, B = B2G<br />
|-<br />
| style="background-color:#8CF;"|only available to certified apps on this platform<br />
|-<br />
| style="background-color:#90ff90;"|implemented and preference enabled by default on on this platform<br />
|-<br />
| style="background-color:#FC6;"|implemented but requires explicitly turning on the preference on this platform<br />
|-<br />
| style="background-color:#ff9090;"|not implemented for this platform<br />
|-<br />
| style="background-color: silver;"|not currently planned for this platform<br />
|}<br />
<br />
== Process ==<br />
<br />
A draft specification and prototype implementation of new Web APIs will be discussed publicly on our mailing list and at our public meetings (see below). Once we have an API that we feel that we are satisfied with, we will submit the new API for standardization to the W3C.<br />
<br />
The goal is to standardize all APIs.<br />
<br />
== Design Principles ==<br />
<br />
=== Security ===<br />
<br />
Security will be a central aspect of all the APIs that we design. We wouldn't want any random webpage to be able to read the user's contact list, or able to issue arbitrary commands to any USB device which is hooked up to the user's computer.<br />
<br />
In some cases the solution will be to simply ask the user, like we do today for Geolocation for example. In other cases, where security implications are scarier or where describing the risk to the user is harder, we'll have to come up with better solutions.<br />
<br />
This is an area where we're still doing a lot of research. I really want to emphasize that we don't have all the answers yet, but that we plan on having them before we roll out these APIs to millions of users.<br />
<br />
=== Low Level vs. High Level ===<br />
<br />
One question that often comes up, is should we do low level APIs, like USB access, or high level APIs, like camera access?<br />
<br />
In many cases we are going to want to do both high level and low level APIs, with an initial priority on low level. High level APIs will let us create more friendly APIs, which are both easier to use for developers, and better for users since we can provide better security guarantees. However low level APIs will provide support for a wider range of hardware and use cases and will get the browser out of the critical path for innovation.<br />
<br />
== Meetings ==<br />
<br />
Meeting Details:<br />
* [[WebAPI/{{#time: Y-m-d | tuesday}}|Agenda for this week (create below if it doesn't exist yet)]]<br />
* Tuesdays at [http://www.timeanddate.com/worldclock/fixedtime.html?msg=WebAPI+meeting&iso=20120612T10&p1=224&am=30 10:00 AM Pacific Time] (17:00 UTC)<br />
* [https://v.mozilla.com/flex.html?roomdirect.html&key=H1q64MSinl9H|'''WebAPI Vidyo room''']<br />
{{conf|98413}}<br />
* San Francisco: Golden Gate Bridge conference room (3rd floor)<br />
* Toronto: Spadina conference room<br />
* Join irc.mozilla.org [irc://irc.mozilla.org/webapi|IRC #webapi] for back channel<br />
<br />
Notes will be taken on etherpad: https://etherpad.mozilla.org/webapi-meetingnotes<br />
<br />
=== Meeting Notes ===<br />
Create a new weekly agenda from the [[WebAPI/0-0-0|template]]:<br />
<createbox><br />
align=left<br />
type=create<br />
preload=WebAPI/0-0-0<br />
default={{#time: Y-m-d | tuesday}}<br />
prefix=WebAPI/<br />
</createbox><br />
<br />
'''''Remember:''''' You'll still need to link it below!<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2012 <br />
|-<br />
|<br />
* [[WebAPI/2012-09-04|04-September2012]]<br />
* No meetings 2012-08-21 or 2012-08-28 due to work weeks<br />
* [[WebAPI/2012-08-14|14-August-2012]]<br />
* [[WebAPI/2012-08-07|07-August-2012]]<br />
* [[WebAPI/2012-07-31|31-July-2012]]<br />
* [[WebAPI/2012-07-24|24-July-2012]]<br />
* [[WebAPI/2012-07-17|17-July-2012]]<br />
* [[WebAPI/2012-07-10|10-July-2012]]<br />
* [[WebAPI/2012-07-03|03-July-2012]]<br />
* [[WebAPI/2012-06-26|26-June-2012]]<br />
* [[WebAPI/2012-06-19|19-June-2012]]<br />
* [[WebAPI/2012-06-12|12-June-2012]]<br />
* [[WebAPI/2012-06-05|05-June-2012]]<br />
* [[WebAPI/2012-05-29|29-May-2012]]<br />
* [[WebAPI/2012-05-22|22-May-2012]]<br />
* [[WebAPI/2012-05-15|15-May-2012]]<br />
* [[WebAPI/2012-05-08|08-May-2012]]<br />
* [[WebAPI/2012-05-01|01-May-2012]]<br />
* [[WebAPI/2012-04-24|24-April-2012]]<br />
* [[WebAPI/2012-04-10|10-April-2012]]<br />
* [[WebAPI/2012-04-03|03-April-2012]]<br />
* [[WebAPI/2012-03-20|20-March-2012]]<br />
* [[WebAPI/2012-03-13|13-March-2012]]<br />
* [[WebAPI/2012-03-06|06-March-2012]]<br />
* [[WebAPI/2012-02-28|28-February-2012]]<br />
* [[WebAPI/2012-02-14|14-February-2012]]<br />
* [[WebAPI/2012-02-07|07-February-2012]]<br />
* [[WebAPI/2012-01-31|31-January-2012]]<br />
* [[WebAPI/2012-01-24|24-January-2012]]<br />
* [[WebAPI/2012-01-17|17-January-2012]]<br />
* [[WebAPI/2012-01-10|10-January-2012]]<br />
* [[WebAPI/2012-01-03|03-January-2012]]<br />
|}<br />
<br />
{| class="wikitable collapsible collapsed" style="width: 100%"<br />
! 2011 <br />
|-<br />
|<br />
* [[WebAPI/2011-12-20|20-December-2011]]<br />
* [[WebAPI/2011-12-13|13-December-2011]]<br />
* [[WebAPI/2011-11-29|29-November-2011]]<br />
* [[WebAPI/2011-11-22|22-November-2011]]<br />
* [[WebAPI/2011-11-15|15-November-2011]]<br />
* [[WebAPI/2011-11-08|08-November-2011]]<br />
* [[WebAPI/2011-11-01|01-November-2011]]<br />
* [[WebAPI/2011-10-25|25-October-2011]]<br />
* [[WebAPI/2011-10-18|18-October-2011]]<br />
* [[WebAPI/2011-10-11|11-October-2011]]<br />
* [[WebAPI/2011-10-04|04-October-2011]]<br />
* [[WebAPI/2011-09-27|27-September-2011]]<br />
* [[WebAPI/2011-09-20|20-September-2011]]<br />
* [[WebAPI/2011-09-06|06-September-2011]]<br />
* [[WebAPI/2011-08-30|30-August-2011]]<br />
* [[WebAPI/2011-08-23|23-August-2011]]<br />
|}<br />
<br />
== Communication ==<br />
=== Mailing-list / Newsgroup ===<br />
<br />
You can subscribe to the mailing list here: https://lists.mozilla.org/listinfo/dev-webapi<br />
<br />
And the web based API is here: http://groups.google.com/group/mozilla.dev.webapi/topics<br />
<br />
The newsgroup lives on the news.mozilla.org server and has the name mozilla.dev.webapi<br />
<br />
=== IRC ===<br />
Find us on irc.mozilla.org in #webapi.<br />
[[IRC|Need help to use Mozilla IRC servers?]]<br />
<br />
=== See also ===<br />
* [http://hacks.mozilla.org/2011/08/introducing-webapi/ Introducing WebAPI] blog post by Robert Nyman<br />
* [http://hacks.mozilla.org/2011/08/more-details-about-the-webapi-effort/ More details about the WebAPI effort] blog post by Jonas Sicking<br />
* [http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ Mozilla joins the W3C DAP – WebAPI progress] blog post by Robert Nyman and Jonas Sicking<br />
* [http://johnhammink.blogspot.com/2011/11/lets-have-look-at-some-recently-landed.html A look at the latest WebAPIs] a demo/blog post by John Hammink<br />
<br />
=== Demos ===<br />
* [http://robnyman.github.com/battery/ Battery API by Robert Nyman]<br />
* [http://robnyman.github.com/vibration/ Vibration API by Robert Nyman]<br />
* [http://people.mozilla.org/~jhammink/webapi_test_pages/ Demos by John Hammink]<br />
* [http://colinfrei.com/networkapi.html Network API by Colin Frei]<br />
<br />
==== Other efforts ====<br />
* [http://www.w3.org/2009/dap/ W3C Device APIs (DAP)]. Mozilla developers are [http://www.w3.org/2000/09/dbwg/details?group=43696&public=1 members] of the DAP working group ([http://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/ announcement]).<br />
* [http://www.wacapps.net/specifications Wholesale Applications Community (WAC) ]<br />
<br />
== Subpages of {{FULLPAGENAME}}==<br />
{{Special:PrefixIndex/{{FULLPAGENAME}}/}}<br />
<br />
[[Category:Web APIs]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/schedule&diff=466694
MozCampEU2012/schedule
2012-09-02T14:48:30Z
<p>Mounir.lamouri: /* Sunday, September 9th */ Add State of Firefox OS talk</p>
<hr />
<div>=MozCamp 2012 Schedule=<br />
<br />
==Thursday, September 6th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott from mid-day onwards on Thursday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
==Friday, September 7th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott for the majority of Friday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
===Tour of Fabryka (MozCamp Venue)===<br />
<br />
FABRYKA TRZCINY<br />
‪(Otwocka 14‬‬‬‬‬‬, Warsaw)<br />
from 3pm - 4pm<br />
<br />
For directions on how to get to the venue from the Marriott, please see [https://wiki.mozilla.org/MozCampEU2012/Logistics#Travel_between_locations here]<br />
<br />
===MozCamp Welcome Event===<br />
<br />
Champions Sports Bar & Restaurant (Aleje Jerozolimskie 65/79) from 6:30 - 10:30pm<br />
<br />
'''Champions is situated within the same complex as the Marriott and can be easily reached by following the directions provided for you in the hotel lobby.'''<br />
<br />
==Saturday, September 8th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat Breakfast. Breakfast is located in the Lilla Weneda Restaurant on floor 2 and opens at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp + registration (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:00 - 09:15<br />
|all= Welcome to MozCamp<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:15 - 10:00am<br />
|all= Mobilize Mozillians [Mitchell Baker and Tristan Nitot]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=10:00 - 11:00am<br />
|all= Product Vision + Demonstration for Firefox Desktop, OS, and Apps [Jay Sullivan]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:00 - 11:30am<br />
|all= Market Context [David Slater]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:30 - Noon<br />
|all= Next Generation of Mozilla [Mark Surman]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=Noon - 12:45<br />
|all=Community Quilt Presentations<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=12:45 - 13:45pm<br />
|all=Lunch *<br />
}}<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:00 - 15:00<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05-16:30<br />
|all=Coffee Break<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:35 - 17:30<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:35 - 18:30<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:35 - 19:30 <br />
|all=[[MozCampEU2012/Community Health Townhall|Community Health Townhall]]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=19:30 - 20:00 <br />
|all= Transport to Dinner (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for transportation details from the venue to the restaurant)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=20:00 - 23:00 <br />
|all= Dinner<br />
}}<br />
|}<br />
<br />
<br><br />
<br><br />
===Office Hours with Mitchell Baker===<br />
<br />
Mitchell Baker will be hosting office hours at MozCamp on '''Saturday, September 8th''' from:<br />
<br />
*2:00-3:00pm<br />
*5:30 - 6:35pm<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
Please stop by to ask her questions, chat about something that is important to you, and have your picture taken with Mitchell.<br />
<br />
===Contributor Spotlights===<br />
<br />
Please sign-up to be interviewed about your experience as a Mozillian which could be utilized around our 15 year anniversary, Brand Engagement, on-boarding, the Get Involved Page and more! Sign-up to take part [https://wiki.mozilla.org/MozCampEU2012/ContributorSpotlights here]<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
===Building a Webmaker Special Interest Group for ReMo===<br />
Calling all Reps interested in the Webmaker initiative! Please join us during lunch to discuss the scope, goals, and initial framework of a Webmaker SIG within the ReMo program. All outputs will be documented on the Reps wiki. This session looks to the experience of Mozilla Reps to step into leadership roles in shaping the SIG. This lunch gathering will take place in Grow Mozilla Room 1.<br />
<br />
==Sunday, September 9th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat breakfast. Breakfast is located at the Lilla Weneda Restaurant on floor 2 and starts at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:15 - 11:00<br />
|all=Leadership Panel<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=11:05 - 12:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=12:05 - 13:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4= <small>12:05</small><hr><small>12:30</small> [https://wiki.mozilla.org/MozCampEU2012/WebAPI_Status WebAPI Status]<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=13:05 - 14:00<br />
|all=Lunch<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:05 - 15:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/Javascript-optimizations-for-your-Apps Javascript Optimizations]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05 - 16:35<br />
|all=Coffee Break + Open Working Time <br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:40 - 17:40<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:45 - 18:40<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/State-Of-Firefox-OS State of Firefox OS]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:40 - 19:00<br />
|all=Closing<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:30 - 20:00<br />
|all= Commute back to hotel (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the venue returning to the hotel)<br />
}}<br />
|}<br />
<br />
===Keeping the Conversations Going...===<br />
<br />
A room will be available at the Marriott on Sunday evening to continue the discussions + workshops as needed.<br />
<br />
Location: Wawel Room (2nd Floor) at the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
Time: 7pm-1am<br />
<br />
Sign-ups: If you would like to sign-up to utilize this room, please do so [https://etherpad.mozilla.org/mozcampeu-breakouts-sundayevening here]<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Warsaw Marriott Lobby from 7-10pm<br />
<br />
'''Your weekend transportation pass will expire on Sunday night. If need an additional ticket to return to the airport on Monday, please stop by the reception table on Sunday night to pick one up.'''<br />
<br />
=Additional Events Occurring around MozCamp=<br />
<br />
For more information on Mozilla events that may be occurring in Warsaw around MozCamp, please see [https://wiki.mozilla.org/MozCampEU2012/schedule/companion_events here]<br />
<br />
*Please note that unless indicated, these events are by invitation only. <br />
*If interested in attending one of these events, please contact the event organizer directly.</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/State-Of-Firefox-OS&diff=466693
MozCampEU2012/State-Of-Firefox-OS
2012-09-02T14:47:20Z
<p>Mounir.lamouri: Make the page more readable</p>
<hr />
<div>MozCamp EU Proposal<br />
<br />
<b>Title of Session:</b><br><br />
State of Firefox OS<br />
<br />
<b>Facilitator(s):</b><br><br />
Vivien Nicolas & Mounir Lamouri<br />
<br />
<b>Are you paid or volunteer staff?:</b><br><br />
Paid<br />
<br />
<b>Area of Contribution (Team Name):</b><br><br />
B2G/Gaia & Web API<br />
<br />
<b>How are you currently involved with the community?:</b><br><br />
Members of the French community, In love with the Senegalese and Tunisian communities, .... Work with contributors all over the world. <br />
<br />
<b>Location of Work (where do you reside?):</b><br><br />
France.<br />
<br />
<b>Talk Length (please choose between 30, 60, 90, 120 minutes):</b><br><br />
60 minutes.<br />
<br />
<b>Summary:</b><br><br />
Firefox OS is a huge project. It is composed of technicals bits as well as strategic bits and it is very complicated to follow everything that happens from the external (and sometimes from the internal too!).<br />
<br />
A log of the presentation will be dedicate to the things that has been done on the technical side since last august and how it looks like today.<br />
<br />
I would like to give some place to explain the stategy and what are our partnerships? What will be shipped in Brazil? ....<br />
<br />
Mounir and I have presented B2G last year at the same MozCamp and I would like to present what has been achieved during this year.<br />
<br />
<b>How your session furthers the MozCamp Goals (https://wiki.mozilla.org/MozCampEU2012/Tracks):</b><br><br />
B2G and Apps. <br />
<br />
It gives an overview of the project. What difficulties are encountered. How we are changing the web. What will happens. Lots of information there.<br />
<br />
<b>Expected Outcome or Deliverable:</b><br><br />
Inform/Involve people about the project.<br />
<br />
<b>Desired Audience Type or Skill-set:</b><br><br />
From developers to localizers. No special skills are needed even if there will be some more technicals parts when it comes to APIs. <br />
<br />
<hr><br />
<br />
<b>To Be Completed by the Audience</b><br />
<br />
(If you would like) Submit a Question for the Speaker(s) or indicate what information you hope to gain by attending this talk here:<br />
<br />
Place your name here if you would like to attend this talk:<br />
<br />
* Philipp Kewisch<br />
* Serge Gautherie<br />
* Matthias Versen<br />
* Ziggy Maes<br />
* [https://wiki.mozilla.org/MozCampEU2012/hack-core-security-code Kai Engert]<br />
* Paolo Amadini<br />
* Julia Buchner<br />
* Blake Winton<br />
* Michael Kohler :mkohler<br />
* [[User:KaiRo|Robert Kaiser]]<br />
* Anas Husseini<br />
* [[User:Henx|Henrik Mitsch]]<br />
* Szabolcs Hubai<br />
* Tom Schuster<br />
* Théo Chevalier<br />
* Henrik Skupin<br />
* Markus Stange<br />
* Giorgio Maone</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/schedule&diff=466691
MozCampEU2012/schedule
2012-09-02T14:41:09Z
<p>Mounir.lamouri: /* Sunday, September 9th */ Add WebAPI Status talk</p>
<hr />
<div>=MozCamp 2012 Schedule=<br />
<br />
==Thursday, September 6th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott from mid-day onwards on Thursday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
==Friday, September 7th==<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Wolff Produktionen will be staffing an information desk in the lobby of the Warsaw Marriott for the majority of Friday.<br />
<br />
===Open Working Space===<br />
<br />
9am - 6pm in Ballroom E (Floor 2) in the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
===Tour of Fabryka (MozCamp Venue)===<br />
<br />
FABRYKA TRZCINY<br />
‪(Otwocka 14‬‬‬‬‬‬, Warsaw)<br />
from 3pm - 4pm<br />
<br />
For directions on how to get to the venue from the Marriott, please see [https://wiki.mozilla.org/MozCampEU2012/Logistics#Travel_between_locations here]<br />
<br />
===MozCamp Welcome Event===<br />
<br />
Champions Sports Bar & Restaurant (Aleje Jerozolimskie 65/79) from 6:30 - 10:30pm<br />
<br />
'''Champions is situated within the same complex as the Marriott and can be easily reached by following the directions provided for you in the hotel lobby.'''<br />
<br />
==Saturday, September 8th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat Breakfast. Breakfast is located in the Lilla Weneda Restaurant on floor 2 and opens at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp + registration (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:00 - 09:15<br />
|all= Welcome to MozCamp<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:15 - 10:00am<br />
|all= Mobilize Mozillians [Mitchell Baker and Tristan Nitot]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=10:00 - 11:00am<br />
|all= Product Vision + Demonstration for Firefox Desktop, OS, and Apps [Jay Sullivan]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:00 - 11:30am<br />
|all= Market Context [David Slater]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=11:30 - Noon<br />
|all= Next Generation of Mozilla [Mark Surman]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=Noon - 12:45<br />
|all=Community Quilt Presentations<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=12:45 - 13:45pm<br />
|all=Lunch *<br />
}}<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:00 - 15:00<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05-16:30<br />
|all=Coffee Break<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:35 - 17:30<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:35 - 18:30<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:35 - 19:30 <br />
|all=[[MozCampEU2012/Community Health Townhall|Community Health Townhall]]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=19:30 - 20:00 <br />
|all= Transport to Dinner (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for transportation details from the venue to the restaurant)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=20:00 - 23:00 <br />
|all= Dinner<br />
}}<br />
|}<br />
<br />
<br><br />
<br><br />
===Office Hours with Mitchell Baker===<br />
<br />
Mitchell Baker will be hosting office hours at MozCamp on '''Saturday, September 8th''' from:<br />
<br />
*2:00-3:00pm<br />
*5:30 - 6:35pm<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
Please stop by to ask her questions, chat about something that is important to you, and have your picture taken with Mitchell.<br />
<br />
===Contributor Spotlights===<br />
<br />
Please sign-up to be interviewed about your experience as a Mozillian which could be utilized around our 15 year anniversary, Brand Engagement, on-boarding, the Get Involved Page and more! Sign-up to take part [https://wiki.mozilla.org/MozCampEU2012/ContributorSpotlights here]<br />
<br />
The office hours will be located in the room entitled '''Office''' on the second floor of the venue (as outlined [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here]).<br />
<br />
===Building a Webmaker Special Interest Group for ReMo===<br />
Calling all Reps interested in the Webmaker initiative! Please join us during lunch to discuss the scope, goals, and initial framework of a Webmaker SIG within the ReMo program. All outputs will be documented on the Reps wiki. This session looks to the experience of Mozilla Reps to step into leadership roles in shaping the SIG. This lunch gathering will take place in Grow Mozilla Room 1.<br />
<br />
==Sunday, September 9th==<br />
<br />
See track view: [https://wiki.mozilla.org/MozCampEU/Schedule/Desktopandmobile Desktop and Mobile], [https://wiki.mozilla.org/MozCampEU2012/Schedule/appsandb2g Apps and Boot-to-Gecko], [https://wiki.mozilla.org/MozCampEU2012/Schedule/GrowMozilla Grow Mozilla]. <br />
<br />
Please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/Fabryka here] for a layout of the Fabryka.<br />
<br />
{| class="wikitable" |<br />
|-<br />
{{EUCamp12HeaderRow}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=07:00 - 08:00<br />
|all=Wake-up and eat breakfast. Breakfast is located at the Lilla Weneda Restaurant on floor 2 and starts at 6:30 am.<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=08:00 - 09:00<br />
|all=Commute to MozCamp (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the hotel to the venue)<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=09:15 - 11:00<br />
|all=Leadership Panel<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=11:05 - 12:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=12:05 - 13:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4= <small>12:05</small><hr><small>12:30</small> [https://wiki.mozilla.org/MozCampEU2012/WebAPI_Status WebAPI Status]<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=13:05 - 14:00<br />
|all=Lunch<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=14:05 - 15:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=15:05 - 16:00<br />
|Main=<br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=[https://wiki.mozilla.org/MozCampEU2012/Javascript-optimizations-for-your-Apps Javascript Optimizations]<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=16:05 - 16:35<br />
|all=Coffee Break + Open Working Time <br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=16:40 - 17:40<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12Row<br />
|time=17:45 - 18:40<br />
|Main= <br />
|Room 1=<br />
|Room 2=<br />
|Room 3=<br />
|Room 4=<br />
|Room 5=<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:40 - 19:00<br />
|all=Closing<br />
}}<br />
|-<br />
{{EUCamp12FullRow<br />
|time=18:30 - 20:00<br />
|all= Commute back to hotel (please see [https://wiki.mozilla.org/MozCampEU2012/Logistics/tramschedule here] for the tram schedule from the venue returning to the hotel)<br />
}}<br />
|}<br />
<br />
===Keeping the Conversations Going...===<br />
<br />
A room will be available at the Marriott on Sunday evening to continue the discussions + workshops as needed.<br />
<br />
Location: Wawel Room (2nd Floor) at the Warsaw Marriott. For a map of the Marriott conference space, please see [https://wiki.mozilla.org/MozCampEU2012/hotelconferencespace here]<br />
<br />
Time: 7pm-1am<br />
<br />
Sign-ups: If you would like to sign-up to utilize this room, please do so [https://etherpad.mozilla.org/mozcampeu-breakouts-sundayevening here]<br />
<br />
===MozCamp Reception Desk===<br />
<br />
Warsaw Marriott Lobby from 7-10pm<br />
<br />
'''Your weekend transportation pass will expire on Sunday night. If need an additional ticket to return to the airport on Monday, please stop by the reception table on Sunday night to pick one up.'''<br />
<br />
=Additional Events Occurring around MozCamp=<br />
<br />
For more information on Mozilla events that may be occurring in Warsaw around MozCamp, please see [https://wiki.mozilla.org/MozCampEU2012/schedule/companion_events here]<br />
<br />
*Please note that unless indicated, these events are by invitation only. <br />
*If interested in attending one of these events, please contact the event organizer directly.</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/WebAPI_Status&diff=466690
MozCampEU2012/WebAPI Status
2012-09-02T14:35:59Z
<p>Mounir.lamouri: improve readability</p>
<hr />
<div><b>Title of Session (should also be the title of your Wiki page):</b><br><br />
WebAPI Status<br />
<br />
<b>Facilitator(s):</b><br><br />
Mounir Lamouri<br />
<br />
<b>Are you paid or volunteer staff?:</b><br><br />
Paid<br />
<br />
<b>Area of Contribution (Team Name):</b><br><br />
Platform / DOM / WebAPI<br />
<br />
<b>How are you currently involved with the community?:</b><br><br />
French Community + volunteers involved with Gecko hacking<br />
<br />
<b>Location of Work (where do you reside?)</b><br><br />
London (previously Paris)<br />
<br />
<b>Talk Length (please choose between 30, 60, 90, 120 minutes):</b><br><br />
30 minutes<br />
<br />
<b>Summary:</b><br><br />
This talk will sumarrize what happened in the WebAPI effort since the last MozCamp (which was nearly the beginning of the project). What APIs have been implemented, how the work is going with standard bodies, etc. It will also give an overview of what is going to happen in a near future.<br><br />
This talk might give an non-exhaustive list of WebAPIs but will unlikely give examples on how to use them.<br />
<br />
<b>How your session furthers the MozCamp Goals (https://wiki.mozilla.org/MozCampEU2012/Tracks):</b><br><br />
WebAPI is the team involved in making and standardizing the new Web APIs needed for B2G. This talk will allow developers to understand where this work is and the path it is taking.<br />
<br />
<b>Expected Outcome or Deliverable:</b><br><br />
Good understanding on how Mozilla is working to make B2G new APIs standards in the Web.<br />
<br />
<b>Desired Audience Type or Skill-set:</b><br><br />
Web Developers<br><br />
Anyone interested in Web Standards<br />
<br />
<b>Equipment Needs (Video projector already included):</b> none<br />
<br />
--------------------------------------------------------------------<br />
<br />
To Be Completed by the Audience-<br />
<br />
(If you would like) Submit a Question for the Speaker(s) or indicate what <br />
information you hope to gain by attending this talk here:<br />
<br />
Place your name here if you would like to attend this talk:<br />
<br />
<br />
* Philipp Kewisch (where are the differences between the two WebAPI talks?)<br />
* Alice Lieutier<br />
* Jérémie Patonnier<br />
* [[User:KaiRo|Robert Kaiser]]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=Modules/Core&diff=464509
Modules/Core
2012-08-27T17:52:18Z
<p>Mounir.lamouri: Add Core::HAL module</p>
<hr />
<div>{{Module<br />
|name=Accessibility<br />
|description=Support for platform accessibility APIs. Accessibility APIs are used by 3rd party software like screen readers, screen magnifiers, and voice dictation software, which need information about document content and UI controls, as well as important events like changes of focus.<br />
|owner=[mailto:surkov.alexander@gmail.com Alexander Surkov]<br />
|peers=[mailto:bolterbugz@gmail.com David Bolter], [mailto:ginn.chen@oracle.com Ginn Chen], [mailto:trev.saunders@gmail.com Trevor Saunders], [mailto:marco.zehe@googlemail.com Marco Zehe] <br />
|group=dev-accessibility<br />
|source_dirs=accessible/<br />
|url=http://www.mozilla.org/access/<br />
|components=Core::Disability Access APIs<br />
}}<br />
<br />
{{Module<br />
|name=Build and Release Tools<br />
|description=Tools related to build and release automation and configuration of release builds.<br />
|owner=[mailto:nrthomas@gmail.com Nick Thomas]<br />
|peers=[mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:cmp@mozilla.org Chase Phillips], [mailto:mozpreed@sigkill.com John Paul Reed], [mailto:robert@roberthelmer.com Robert Helmer]<br />
|group=dev-builds<br />
|source_dirs=tools/botrunner.py, tools/build-environment/, tools/build/, tools/buildbot-configs/, tools/buildbot/, tools/buildbotcustom/, tools/l10n/, tools/MozBuild/, tools/patcher-configs/, tools/patcher/, tools/release/, tools/tinderbox-configs/, tools/tinderbox/, tools/update-packaging/, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=<br />
|components=mozilla.org::Release Engineering, mozilla.org::Release Engineering: Custom Builds<br />
}}<br />
<br />
{{Module<br />
|name=Build Config<br />
|description=The build system for Gecko and several mozilla.org hosted Gecko-based applications.<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:mark@moxienet.com Mark Mentovai], [mailto:me@kylehuey.com Kyle Huey], [mailto:mh@glandium.org Mike Hommey], [mailto:mitchell.field@live.com.au Mitchell Field], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-builds<br />
|source_dirs=build/, config/, tools/cross-commit, tools/cvs2hg-import.py, tools/cvsmgmt/, tools/elf-dynstr-gc/, tools/trees.pl, browser/config/mozconfigs/, mobile/config/mozconfigs/, xulrunner/config/mozconfigs/<br />
|url=http://www.mozilla.org/build/<br />
|components=Core::Build Config<br />
}}<br />
<br />
{{Module<br />
|name=Code Analysis and Debugging Tools<br />
|description=Tools for debugging Mozilla code or for analyzing speed, memory use, and other characteristics of it.<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=<br />
|group=dev-performance<br />
|source_dirs=tools/codesighs/, tools/debug/, tools/dreftool/, tools/dumpdeps/, tools/footprint/, tools/jprof/, tools/leaky/, tools/memory/, tools/module-deps/, tools/performance/, tools/post_compile/, tools/preloader/, tools/rb/, tools/reorder/, tools/trace-malloc/, tools/uuiddeps/, <br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Content HTTP Headers<br />
|description=HTTP headers related to content, e.g. User-Agent, Content-Type, Accept. (Transport-related headers are the responsibility of the Necko module owner.)<br />
|owner=[mailto:gerv@mozilla.org Gervase Markham]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs= <br />
|url=https://developer.mozilla.org/en/Gecko_user_agent_string_reference<br />
|components=Core::Networking: HTTP<br />
}}<br />
<br />
{{Module<br />
|name=Cookies and Permissions<br />
|description=<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:mconnor@steelgryphon.com Mike Connor], [mailto:sdwilsh@shawnwilsher.com Shawn Wilsher]<br />
|group=dev-tech-network<br />
|source_dirs=extensions/cookie/, netwerk/cookie/<br />
|url=<br />
|components=Core::Networking: Cookies<br />
}}<br />
<br />
{{Module<br />
|name=docshell<br />
|description=<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|peers=[mailto:cbiesinger@gmail.com Christian Biesinger],[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jst@mozilla.org Johnny Stenback], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:justin.lebar@gmail.com Justin Lebar]<br />
|group=dev-tech-layout<br />
|source_dirs=docshell/, uriloader/, webshell/<br />
|url=<br />
|components=Core::Document Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Document Object Model<br />
|description=<br />
|owner=[mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:Olli.Pettay@helsinki.fi Olli Pettay], [mailto:bent@mozilla.com Ben Turner], [mailto:mounir.lamouri@mozilla.com Mounir Lamouri], [mailto:khuey@kylehuey.com Kyle Huey], [mailto:justin.lebar@gmail.com Justin Lebar], [mailto:hsivonen@iki.fi Henri Sivonen]<br />
|group=dev-tech-dom<br />
|source_dirs=content/base/, content/events/, content/html/content/, content/html/document/, dom/%, dom/base/, dom/interfaces/, dom/locales/, dom/public/, dom/src/, dom/tests/<br />
|url=http://developer.mozilla.org/en/docs/DOM<br />
|components=Core::DOM, Core::DOM: CSS Object Model, Core::DOM: Core & HTML, Core::DOM: Events, Core::DOM: Mozilla Extensions, Core::DOM: Other, Core::DOM: Traversal-Range, Core::DOM: Validation<br />
}}<br />
<br />
{{Module<br />
|name=Web Workers<br />
|description=<br />
|owner=[mailto:bent@mozilla.com Ben Turner]<br />
|peers=[mailto:mrbkap@mozilla.com Blake Kaplan], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-platform<br />
|source_dirs=dom/workers/<br />
|url=https://developer.mozilla.org/En/Using_web_workers<br />
|components=Core::DOM: Workers<br />
}}<br />
<br />
<br />
{{Module<br />
|name=IndexedDB<br />
|description=<br />
|owner=[mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=[mailto:bent@mozilla.com Ben Turner], [mailto:khuey@mozilla.com Kyle Huey] <br />
|group=dev-platform<br />
|source_dirs=dom/indexedDB/<br />
|url=https://developer.mozilla.org/en/IndexedDB<br />
|components=Core::DOM: IndexedDB<br />
}}<br />
<br />
{{Module<br />
|name=Editor<br />
|description=<br />
|owner=[mailto:ehsan@mozilla.com Ehsan Akhgari]<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=editor/<br />
|url=http://www.mozilla.org/editor/<br />
|components=Core::Editor<br />
}}<br />
<br />
{{Module<br />
|name=Embedding<br />
|description=<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-embedding<br />
|source_dirs=embedding/<br />
|url=<br />
|components=Core::Embedding: APIs, Core::Embedding: ActiveX Wrapper, Core::Embedding: GRE Core, Core::Embedding: GTK Widget, Core::Embedding: MFC Embed, Core::Embedding: Mac, Core::Embedding: Packaging<br />
}}<br />
<br />
{{Module<br />
|name=Find As You Type<br />
|description=Find As You Type (formerly called Type Ahead Find) is a feature that allows quick web page navigation when you type a succession of characters in the body of the displayed page (not in an edit box of or drop down list). Currently seeks new owner.<br />
|owner=<br />
|peers=<br />
|group=dev-accessibility<br />
|source_dirs=extensions/typeaheadfind/<br />
|url=http://www.mozilla.org/access/type-ahead/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Geolocation<br />
|description=Implementation of the Geolocation W3C Spec, location provider apis, and wifi scanning code.<br />
|owner=[mailto:dougt@dougt.org Doug Turner]<br />
|peers=[mailto:josh@joshmatthews.net Josh Matthews]<br />
|group=dev-tech-dom<br />
|source_dirs=dom/src/geolocation, dom/system/, netwerk/wifi<br />
|url=https://developer.mozilla.org/En/Using_geolocation<br />
|components=Core::Geolocation<br />
}}<br />
<br />
{{Module<br />
|name=Global Key Bindings<br />
|description=Global hot keys in Mozilla for the browser, editor, mail-news and widgets. Does not include underlined menu accelerators and the like, as those are part of i18n.<br />
|owner=[mailto:aaronleventhal@moonset.net Aaron Leventhal]<br />
|peers=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|group=dev-accessibility<br />
|source_dirs=content/xbl/builtin/<br />
|url=http://www.mozilla.org/projects/ui/accessibility/mozkeyintro.html<br />
|components=Core::Keyboard: Navigation<br />
}}<br />
<br />
{{Module<br />
|name=Graphics<br />
|description=Mozilla graphics API<br />
|owner=[mailto:jdrew@mozilla.com Joe Drew], [mailto:jrmuizel@mozilla.com Jeff Muizelaar]<br />
|peers=[mailto:vladimir@pobox.com Vladimir Vukicevic], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:bas.schouten@live.nl Bas Schouten], [mailto:bjacob@mozilla.com Benoit Jacob], [mailto:bgirard@mozilla.com Benoit Girard], [mailto:ajuma@mozilla.com Ali Juma], [mailto:jgilbert@mozilla.com Jeff Gilbert], [mailto:george@mozilla.com George Wright], [mailto:mwoodrow@mozilla.com Matt Woodrow], [mailto:jdaggett@mozilla.com John Daggett], [mailto:jfkthame@googlemail.com Jonathan Kew]<br />
|group=dev-platform<br />
|source_dirs=gfx/, content/canvas/src/<br />
|url=https://wiki.mozilla.org/Platform/GFX https://wiki.mozilla.org/Gecko:Layers https://wiki.mozilla.org/Gecko:2DGraphicsSketch<br />
|components=Core::Graphics, Core::GFX: Color Management, Core::Canvas: 2D, Core::Canvas: WebGL<br />
}}<br />
<br />
{{Module<br />
|name=GTK Embedding Widget<br />
|description=Gtk Widget for embedding Mozilla into Gtk applications<br />
|owner=[mailto:marco@gnome.org Marco Pesenti Gritti]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:dougt@meer.net Doug Turner]<br />
|group=dev-embedding<br />
|source_dirs=<br />
|url=<br />
|components=Core::Embedding: GTK Widget<br />
}}<br />
<br />
{{Module<br />
|name=Legacy HTML Parser<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:dbaron@dbaron.org David Baron], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:rbs@maths.uq.edu.au rbs@maths.uq.edu.au]<br />
|group=dev-tech-dom<br />
|source_dirs=parser/htmlparser<br />
|url=http://www.mozilla.org/newlayout/doc/parser.html<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=HAL<br />
|description=Hardware Abstraction Layer<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:mounir@lamouri.fr Mounir Lamouri], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-platform<br />
|source_dirs=hal/<br />
|components=Core::Hardware Abstraction Layer (HAL)<br />
}}<br />
<br />
{{Module<br />
|name=HTML Parser<br />
|description=The HTML Parser transforms HTML source code into a DOM. It conforms to the HTML specification, and is mostly translated automatically from Java to C++.<br />
|owner=[mailto:hsivonen@iki.fi Henri Sivonen]<br />
|peers=<br />
|group=dev-tech-dom<br />
|source_dirs=parser/html<br />
|url=http://about.validator.nu/<br />
|components=Core::HTML: Parser<br />
}}<br />
<br />
{{Module<br />
|name=I18N Library<br />
|description=<br />
|owner=[mailto:jshin1987@gmail.com Jungshik Shin], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|peers=<br />
|group=dev-i18n<br />
|source_dirs=intl/<br />
|url=http://mozilla.org/projects/intl/index.html<br />
|components=Core::Internationalization<br />
}}<br />
<br />
{{Module<br />
|name=ImageLib<br />
|description=<br />
|owner=[mailto:joe@drew.ca Joe Drew]<br />
|peers=[mailto:bobbyholley@gmail.com Bobby Holley], [mailto:netzen@gmail.com Brian Bondy], [mailto:jmuizelaar@mozilla.com Jeff Muizelaar], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-gfx<br />
|source_dirs=media/libjpeg/, media/libpng/, image/, modules/zlib/<br />
|url=<br />
|components=Core::ImageLib<br />
}}<br />
<br />
{{Module<br />
|name=IPC<br />
|description=Message-passing between threads and processes<br />
|owner=[mailto:cjones@mozilla.com Chris Jones]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:bent.mozilla@gmail.com Ben Turner]<br />
|group=dev-platform<br />
|source_dirs=ipc/glue/, ipc/ipdl/, ipc/chromium/<br />
|url=<br />
|components=Core::IPC}}<br />
<br />
{{Module<br />
|name=Java APIs for DOM<br />
|description=APIs for Java access to the Document Object Model<br />
|owner=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|peers=<br />
|group=dev-tech-dom,dev-tech-java<br />
|source_dirs=java/dom/<br />
|url=http://www.mozilla.org/projects/blackwood/dom/<br />
|components=Core::Java APIs for DOM<br />
}}<br />
<br />
{{Module<br />
|name=Java APIs to WebShell<br />
|description=<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java,dev-embedding<br />
|source_dirs=java/webclient/<br />
|url=http://www.mozilla.org/projects/blackwood/webclient/<br />
|components=Core::Java APIs to WebShell<br />
}}<br />
<br />
{{Module<br />
|name=Java Stubs<br />
|description=OJI<br />
|owner=[mailto:alfred.peng@sun.com Alfred Peng]<br />
|peers=[mailto:Xiaobin.Lu@eng.Sun.com Xiaobin Lu]<br />
|group=dev-tech-java<br />
|source_dirs=modules/oji/, nav-java/, sun-java/<br />
|url=http://www.mozilla.org/oji/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java to XPCOM Bridge<br />
|description=<br />
|owner=[mailto:pedemont@us.ibm.com Javier Pedemont]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpcom,dev-tech-java<br />
|source_dirs=extensions/java<br />
|url=http://www.mozilla.org/projects/blackwood/connect/<br />
|components=Core::Java to XPCOM Bridge<br />
}}<br />
<br />
{{Module<br />
|name=Java Utility Classes<br />
|description=assert, debug, utilities, etc.<br />
|owner=[mailto:edburns@acm.org Ed Burns]<br />
|peers=[mailto:ashuk@eng.sun.com Ashutosh Kulkarni]<br />
|group=dev-tech-java<br />
|source_dirs=java/util/<br />
|url=http://www.mozilla.org/projects/blackwood/java-util/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Java-Implemented Plugins<br />
|description=Infrastructure for writing MIME content-handlers<br />
in Java.<br />
|owner=[mailto:idk@eng.sun.com Igor Kushnirskiy]<br />
|peers=<br />
|group=dev-tech-java<br />
|source_dirs=java/plugins/<br />
|url=http://www.mozilla.org/projects/blackwood/java-plugins/<br />
|components=Core::Java-Implemented Plugins<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript<br />
|description=JavaScript Engine in C++ (SpiderMonkey)<br />
|owner=[mailto:dmandelin@mozilla.com Dave Mandelin]<br />
|peers=[mailto:danderson@mozilla.com David Anderson], [mailto:igor@mir2.org Igor Bukanov], [mailto:brendan@mozilla.org Brendan Eich], [mailto:gal@mozilla.com Andreas Gal], [mailto:cdleary@mozilla.com Chris Leary], , [mailto:wmccloskey@mozilla.com Bill McCloskey], [mailto:nnethercote@mozilla.com Nick Nethercote], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:jwalden@mit.edu Jeff Walden], [mailto:lwagner@mozilla.com Luke Wagner], [mailto:ejpbruel@mozilla.com Eddy Bruel] for proxies, [mailto:mrbkap@gmail.com Blake Kaplan], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/%, js/src/config/, js/src/editline/, js/src/fdlibm/<br />
|url=http://www.mozilla.org/js/spidermonkey,<br />
http://developer.mozilla.org/en/docs/About_JavaScript<br />
|components=Core::JavaScript Engine<br />
}}<br />
<br />
{{Module<br />
|name=JavaScript Debugger Backend<br />
|description=JavaScript debugging hooks<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:rginda@hacksrus.com Rob Ginda]<br />
|group=dev-apps-js-debugger<br />
|source_dirs=js/jsd/<br />
|url=http://www.mozilla.org/js/jsd<br />
|components=Other Applications::Venkman JS Debugger<br />
}}<br />
<br />
{{Module<br />
|name=js-ctypes<br />
|description=A foreign function interface which allows privileged JS code to interact with binary code without using XPCOM/XPConnect.<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jorendorff@mozilla.com Jason Orendorff], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/src/ctypes/<br />
|url=https://wiki.mozilla.org/JSctypes<br />
|components=Core::js-ctypes<br />
}}<br />
<br />
{{Module<br />
|name=js-tests<br />
|description=JavaScript test suite<br />
|owner=[mailto:bclary@bclary.com Bob Clary]<br />
|peers=<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tests/<br />
|url=http://www.mozilla.org/js/tests/library.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Layout Engine<br />
|description=rendering tree construction, layout (reflow), painting, etc.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bmlk@gmx.de Bernd Mielke], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron], [mailto:smontagu@smontagu.org Simon Montagu]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/%, layout/base/, layout/build/, layout/doc/, layout/forms/, layout/generic/, layout/html/, layout/macbuild/, layout/printing/, layout/tables/, layout/tools/<br />
|url=http://mozilla.org/newlayout/doc/ ,<br />
http://lxr.mozilla.org/mozilla/source/layout/doc/<br />
|components=Core::Layout, Core::Layout: Block and Inline, Core::Layout: Floats, Core::Layout: Form Controls, Core::Layout: HTML Frames, Core::Layout: Images, Core::Layout: Misc Code, Core::Layout: R & A Pos, Core::Layout: Tables, Core::Layout: Text, Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=libjar<br />
|description=The JAR handling code (protocol handler, stream implementation, and zipreader/zipwriter).<br />
|owner=[mailto:tglek@mozilla.com Taras Glek]<br />
|peers=[mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=modules/libjar<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=MathML<br />
|description=MathML is a low-level specification for describing mathematics which provides a foundation for the inclusion of mathematical expressions in Web pages.<br />
|owner=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|group=dev-tech-mathml<br />
|source_dirs=layout/mathml/<br />
|url=http://www.mozilla.org/projects/mathml/<br />
|components=Core::MathML<br />
}}<br />
<br />
{{Module<br />
|name=mfbt<br />
|description=mfbt is a collection of headers, macros, data structures, methods, and other functionality available for use and reuse throughout all Mozilla code (including SpiderMonkey and Gecko more broadly).<br />
|owner=<br />
|peers=<br />
|group=dev-platform<br />
|source_dirs=mfbt/<br />
|url=<br />
|components=Core::MFBT<br />
}}<br />
<br />
{{Module<br />
|name=mozilla-toplevel<br />
|description=The top level directory for the mozilla tree.<br />
|owner=[mailto:brendan@mozilla.org Brendan Eich]<br />
|peers=<br />
|group=<br />
|source_dirs=tools/README<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Necko<br />
|description=The Mozilla Networking Library<br />
|owner=[mailto:cbiesinger@gmail.com Christian Biesinger]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jduell.mcbugs@gmail.com Jason Duell], [mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:pmcmanus@mozilla.com Patrick McManus], [mailto:bsmith@mozilla.com Brian Smith], [mailto:mnovotny@mozilla.com Michal Novotny]<br />
|group=dev-tech-network<br />
|source_dirs=netwerk/%, netwerk/base/, netwerk/build/, netwerk/cache/, netwerk/dns/, netwerk/locales/, netwerk/mime/, netwerk/protocol/, netwerk/resources/, netwerk/socket/, netwerk/streamconv/, netwerk/system/, netwerk/test/, netwerk/testserver/<br />
|url=http://www.mozilla.org/projects/netlib/, https://developer.mozilla.org/en/Necko<br />
|components=Core::Networking, Core::Networking: Cache, Core::Networking: Cookies, Core::Networking: FTP, Core::Networking: File, Core::Networking: HTTP, Core::Networking: JAR, Core::Networking: Websockets<br />
}}<br />
<br />
{{Module<br />
|name=NSPR<br />
|description=Netscape Portable Runtime<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|group=dev-tech-nspr<br />
|source_dirs=nsprpub/<br />
|url=http://www.mozilla.org/projects/nspr/<br />
http://www.mozilla.org/projects/nspr/reference/html/<br />
http://www.mozilla.org/projects/nspr/release-notes/<br />
|components=NSPR<br />
}}<br />
<br />
{{Module<br />
|name=PDF<br />
|description=Rendering code to display documents encoded in the ISO 32000-1 `PDF' format.<br />
|owner=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|peers=[mailto:aadib@mozilla.com Artur Adib], [mailto:bdahl@mozilla.com Brendan Dahl], [mailto:vnicolas@mozilla.com Vivien Nicolas]<br />
|group=dev-platform<br />
|source_dirs=media/pdf/<br />
|url=https://github.com/mozilla/pdf.js<br />
|components=Core::PDF<br />
}}<br />
<br />
{{Module<br />
|name=Plugins<br />
|description= NPAPI Plugin support.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:jst@mozilla.org Johnny Stenback], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jmathies@mozilla.com Jim Mathies]<br />
|group=<br />
|source_dirs=dom/plugins/, modules/plugin/<br />
|url=https://wiki.mozilla.org/Plugins<br />
|components=Core::Java-Implemented Plugins, Core::Plug-ins<br />
}}<br />
<br />
{{Module<br />
|name=Preferences<br />
|description=Preference library<br />
|owner=[mailto:dwitte@mozilla.com Dan Witte]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-platform<br />
|source_dirs=modules/libpref/<br />
|url=<br />
|components=Core::Preferences: Backend<br />
}}<br />
<br />
{{Module<br />
|name=Privilege Manager<br />
|description="caps"<br />
|owner=<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dveditz@cruzio.com Dan Veditz], [mailto:jst@mozilla.org Johnny Stenback]<br />
|group=dev-tech-dom<br />
|source_dirs=caps/<br />
|url=http://www.mozilla.org/projects/security/components/index.html<br />
|components=Core::Security: CAPS<br />
}}<br />
<br />
{{Module<br />
|name=PyXPCOM<br />
|description=The Python to XPCOM bridge.<br />
|owner=[mailto:toddw@activestate.com Todd Whiteman]<br />
|peers=[mailto:mhammond@skippinet.com.au Mark Hammond]<br />
|group=<br />
|source_dirs=extension/python<br />
|url=https://developer.mozilla.org/en/PyXPCOM<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=Qt-based gfx and widget<br />
|description=Qt-based rendering and widget code<br />
|owner=[mailto:romaxa@gmail.com Oleg Romashin]<br />
|peers=[mailto:mozilla@rosenauer.org Wolfgang Rosenauer], [mailto:doug.turner@gmail.com Doug Turner]<br />
|group=dev-tech-widget,dev-tech-gfx<br />
|source_dirs=widget/qt/<br />
|url=<br />
|components=Core::Widget: Qt<br />
}}<br />
<br />
{{Module<br />
|name=Radio Interface Layer<br />
|description=Boot2Gecko Radio Interface Layer (RIL)<br />
|owner=[mailto:philikon@mozilla.com Philipp von Weitershausen], [mailto:kmachulis@mozilla.com Kyle Machulis]<br />
|peers=[mailto:marshall@mozilla.com Marshall Culpepper], [mailto:vyang@mozilla.com Vicamo Yang], [mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|group=dev-b2g<br />
|source_dirs=ipc/ril dom/telephony<br />
|url=https://wiki.mozilla.org/B2G/RIL<br />
|components=Core::RIL<br />
}}<br />
<br />
{{Module<br />
|name=RDF<br />
|description=<br />
|owner=[mailto:axel@pike.org Axel Hecht]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-rdf<br />
|source_dirs=rdf/<br />
|url=http://www.mozilla.org/rdf/doc/<br />
|components=Core::RDF<br />
}}<br />
<br />
{{Module<br />
|name=Registry<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:dougt@meer.net Doug Turner]<br />
|group=dev-tech-xpcom<br />
|source_dirs=modules/libreg/<br />
|url=<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=security<br />
|description=Crypto/PKI code, including NSS (Network Security Services) and JSS (NSS for Java)<br />
|owner=[mailto:nelson@bolyard.com Nelson Bolyard], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|peers=[mailto:alexei.volkov.bugs@sun.com Alexei Volkov], [mailto:christophe.ravel.bugs@sun.com Christophe Ravel], [mailto:emaldona@redhat.com Elio Maldonado], [mailto:glen.beasley@sun.com Glen Beasley], [mailto:julien.pierre.boogz@sun.com Julien Pierre], [mailto:kaie@kuix.de Kai Engert]<br />
|group=dev-tech-crypto<br />
|source_dirs=dbm/, security/coreconf/, security/dbm/, security/jss/, security/nss/, security/tinderbox/, security/tinderlight/<br />
|url=http://mozilla.org/projects/security/pki/<br />
|components=NSS, JSS, Core::Security, Core::Security: S/MIME<br />
}}<br />
<br />
{{Module<br />
|name=Security - Mozilla PSM Glue<br />
|description=Personal Security Manager<br />
|owner=[mailto:kaie@kuix.de Kai Engert]<br />
|peers=[mailto:honzab.moz@firemni.cz Honza Bambas], [mailto:rrelyea@redhat.com Bob Relyea], [mailto:wtc@google.com Wan-Teh Chang]<br />
|group=dev-tech-crypto<br />
|source_dirs=security/manager/<br />
|url=<br />
|components=Core::Security: PSM, Core::Security: UI<br />
}}<br />
<br />
{{Module<br />
|name=storage<br />
|description=Storage APIs with a SQLite backend<br />
|owner=[mailto:sdwilsh@shawnwilsher.com Shawn Wilsher]<br />
|peers=[mailto:bugmail@asutherland.org Andrew Sutherland]<br />
|group=dev-platform<br />
|source_dirs=db/sqlite3/, storage/<br />
|url=http://developer.mozilla.org/en/docs/Storage<br />
|components=Toolkit::Storage, Core::SQL<br />
}}<br />
<br />
{{Module<br />
|name=String<br />
|description=<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:jlebar@mozilla.com Justin Lebar]<br />
|group=dev-tech-xpcom<br />
|source_dirs=string/, xpcom/string/<br />
|url=https://developer.mozilla.org/En/Mozilla_internal_string_guide<br />
|components=Core::String<br />
}}<br />
<br />
{{Module<br />
|name=Style System<br />
|description=CSS style sheet handling; style data computation<br />
|owner=[mailto:dbaron@dbaron.org David Baron]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky]<br />
|group=dev-tech-layout<br />
|source_dirs=layout/style/<br />
|url=http://mozilla.org/newlayout/doc/<br />
|components=Core::Style System (CSS)<br />
}}<br />
<br />
{{Module<br />
|name=SVG<br />
|description=Scalable Vector Graphics<br />
|owner=[mailto:jwatt@jwatt.org Jonathan Watt]<br />
|peers=[mailto:longsonr@gmail.com Robert Longson], [mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:dholbert@mozilla.com Daniel Holbert]<br />
|group=dev-tech-svg<br />
|source_dirs=content/svg/, layout/svg/<br />
|url=http://www.mozilla.org/projects/svg/<br />
|components=Core::SVG<br />
}}<br />
<br />
{{Module<br />
|name=Tamarin<br />
|description=VM for ActionScript and JavaScript<br />
|owner=[mailto:edwsmith@adobe.com Edwin Smith], [mailto:jodyer@adobe.com Jeff Dyer]<br />
|peers=[mailto:brendan@mozilla.org Brendan Eich], [mailto:stejohns@adobe.com Steven Johnson], [mailto:tierney@adobe.com Erik Tierney], [mailto:treilly@adobe.com Tom Reilly]<br />
|group=dev-tech-js-engine<br />
|source_dirs=js/tamarin<br />
|url=http://www.mozilla.org/projects/tamarin/<br />
http://wiki.mozilla.org/tamarin/<br />
http://hg.mozilla.org/tamarin-central/<br />
http://hg.mozilla.org/tamarin-tracing/<br />
|components=Tamarin<br />
}}<br />
<br />
{{Module<br />
|name=Test Harness<br />
|description=In-tree test infrastructure and tools. Harnesses include, XPCShell, Mochitest (& Chrome), Reftest, JsREftest, Compiled Code Tests, Robocop, Mozmill and Marionette. Requests for new harnesses should go to Testing::General.<br />
|owner=[mailto:ted@mozilla.com Ted Mielczarek]<br />
|peers=[mailto:dbaron@dbaron.org David Baron] (reftest), [mailto:jwalden@mit.edu Jeff Walden] (httpd.js, jsreftest), [mailto:rcampbell@mozilla.com Rob Campbell] (mochitest, mochitest chrome, marionette), [mailto:jmaher@mozilla.com Joel Maher] (reftest, mochitest, jsreftest), [mailto:ctalbert@mozilla.com Clint Talbert] (reftest, compiled code, mozmill), [mailto:geoffbrown@mozilla.com Geoff Brown] (robocop), [mailto:hskupin@mozilla.com Henrik Skupin] (mozmill), [mailto:mdas@mozilla.com Malini Das] (marionette), [mailto:jgriffin Jonathan Griffin] (marionette), [mailto:jhammel@mozilla.com Jeffrey Hammel] (mozmill)<br />
|group=dev-quality<br />
|source_dirs=/testing<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::General, Testing::Mochitest, Testing::Mochitest Chrome, Testing::Marionette, Testing::Mozmill, Testing::Reftest, Testing::XPCShell Harness, Testing::httpd.js<br />
}}<br />
<br />
{{Module<br />
|name=Testing Infrastructure<br />
|description=Testing tools and infrastructure for Mozilla projects, harnesses for automated tests, stand-alone test tools. Talos, Graph Server, Mozbase, Pulse, WOO, Bughunter, SUTAgent, Eideticker<br />
|owner=[mailto:ctalbert@mozilla.com Clint Talbert]<br />
|peers=[mailto:anodelman@mozilla.com Alice Nodelman], [mailto:bclary@bclary.com Bob Clary], [mailto:bhearsum@mozilla.com Ben Hearsum], [mailto:ccooper@deadsquid.com Chris Cooper], [mailto:ctalbert@mozilla.com Clint Talbert], [mailto:robert@roberthelmer.com Robert Helmer], [mailto:jmaher@mozilla.com Joel Maher], [mailto:rcampbell@mozilla.com Rob Campbell], [mailto:jhammel@mozilla.com Jeffrey Hammel], [mailto:wlach@mozilla.com William Lachance], [mailto:jeads@mozilla.com Jonathan Eads], [mailto:jgriffin Jonathan Griffin], [mailto:bmoss@mozilla.com Bob Moss], [mailto:mcote@mozilla.com Mark Côté]<br />
|group=dev-quality<br />
|source_dirs=testing/, tools/httptester/, tools/page-loader/, tools/test-harness/, tools/tests/, tools/testserver/, tools/testy/<br />
|url=http://wiki.mozilla.org/SoftwareTesting<br />
|components=Testing::Infrastructure<br />
}}<br />
<br />
{{Module<br />
|name=XPCShell Test Harness<br />
|description=The XPCShell Harness<br />
|owner=[mailto:ted.mielczarek@gmail.com Ted Mielczarek]<br />
|peers=[mailto:jmaher@mozilla.com Joel Maher]<br />
|source_dirs=testing/xpcshell<br />
|components=Testing::XPCShell Harness<br />
}}<br />
<br />
{{Module<br />
|name=Update Service<br />
|description=server code for Mozilla Update services (aus, addons, pfs)<br />
|owner=[mailto:morgamic@mozilla.com Mike Morgan]<br />
|peers=[mailto:jscott@mozilla.com Justin Scott], [mailto:shaver@mozilla.org Mike Shaver], [mailto:wclouser@mozilla.com Will Clouser]<br />
|group=dev-amo<br />
|source_dirs=webtools/addons/, webtools/aus/, webtools/update/<br />
|url=http://wiki.mozilla.org/wiki/AMO<br />
|components=AUS::Administration, AUS::Systems<br />
}}<br />
<br />
{{Module<br />
|name=View System<br />
|description=The View Manager is responsible for handling "heavyweight" rendering (some clipping, compositing) and event handling tasks.<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:dbaron@dbaron.org David Baron]<br />
|group=dev-tech-layout<br />
|source_dirs=view/<br />
|url=<br />
|components=Core::Layout: View Rendering<br />
}}<br />
<br />
{{Module<br />
|name=WebRTC<br />
|description=WebRTC is responsible for realtime audio and video communication, as well as related issues like low-level camera and microphone access (on desktop at least)<br />
|owner=[mailto:rjesup@mozilla.com Randell Jesup]<br />
|peers=[mailto:roc+@cs.cmu.edu Robert O'Callahan], [mailto:tterriberry@mozilla.com Tim Terriberry], [mailto:anant@mozilla.com Anant Narayanan]<br />
|group=dev-media<br />
|source_dirs=media/webrtc<br />
|url=https://wiki.mozilla.org/Media/webrtc<br />
|components=Core::WebRTC, Core::WebRTC (Audio/Video), Core::WebRTC (Networking), Core::WebRTC (Signaling)<br />
}}<br />
<br />
{{Module<br />
|name=Widget<br />
|description=<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:pavlov@pavlov.net Stuart Parmenter], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-tech-gfx<br />
|source_dirs=widget/%, widget/public/, widget/%, widget/xpwidgets/<br />
|url=<br />
|components=Core::Drag and Drop, Core::Widget<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Android<br />
|description=The Android Port<br />
|owner=[mailto:blassey.bugs@lassey.us Brad Lassey]<br />
|peers=[mailto:vladimir@mozilla.com Vladimir Vukicevic], [mailto:dougt@dougt.org Doug Turner], [mailto:mwu@mozilla.com Michael Wu]<br />
|group=dev-platform<br />
|source_dirs=widget/android/, embedding/android<br />
|url=<br />
|components=Core::Widget: Android<br />
}}<br />
<br />
{{Module<br />
|name=Widget - BeOS<br />
|description=The BeOS port<br />
|owner=[mailto:cbiesinger@gmail.com Christian Biesinger]<br />
|peers=<br />
|group=dev-tech-gfx<br />
|source_dirs=widget/beos/<br />
|url=http://www.bezilla.org/,<br />
http://www.mozilla.org/ports/beos/<br />
|components=Core::Widget: BeOS<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Gonk<br />
|description=The Gonk Port (Boot2Gecko)<br />
|owner=[mailto:mwu@mozilla.com Michael Wu]<br />
|peers=[mailto:cjones@mozilla.com Chris Jones], [mailto:gal@mozilla.com Andreas Gal]<br />
|group=dev-platform<br />
|source_dirs=widget/gonk/<br />
|url=http://wiki.mozilla.org/B2G<br />
|components=Core::Widget: Gonk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - GTK<br />
|description=supported X widgetry and gfx<br />
|owner=[mailto:roc+@cs.cmu.edu Robert O'Callahan]<br />
|peers=[mailto:karlt+@karlt.net Karl Tomlinson]<br />
|group=dev-tech-gfx<br />
|source_dirs=widget/gtk/, widget/gtk2/, widget/gtksuperwin/, widget/gtkxtbin/<br />
|url=http://www.mozilla.org/unix/, http://www.gtk.org, http://www.mozilla.org/ports/gtk/<br />
|components=Core::Widget: Gtk<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Mac OS X<br />
|description= Gecko's Mac OS X compatibility layer.<br />
|owner=[mailto:joshmoz@gmail.com Josh Aas]<br />
|peers=[mailto:mstange@themasta.com Markus Stange], [mailto:smichaud@pobox.com Steven Michaud], [mailto:bgirard@mozilla.com Benoit Girard]<br />
|group=dev-platform<br />
|source_dirs=widget/cocoa/<br />
|url=<br />
|components=Core::Widget: Cocoa<br />
}}<br />
<br />
{{Module<br />
|name=Widget - Windows<br />
|description=Windows widgets and desktop integration<br />
|owner=[mailto:jmathies@mozilla.com Jim Mathies]<br />
|peers=[mailto:blassey@mozilla.com Brad Lassey], [mailto:netzen@gmail.com Brian Bondy], [mailto:cbiesinger@gmail.com Christian Biesinger], [mailto:dougt@meer.net Doug Turner], [mailto:neil@parkwaycc.co.uk Neil Rashbrook], [mailto:robarnold@cmu.edu Rob Arnold], [mailto:timeless@mozdev.org Josh 'timeless' Soref], [mailto:vladimir@pobox.com Vladimir Vukicevic]<br />
|group=dev-platform<br />
|source_dirs=widget/windows/<br />
|url=<br />
|components=Core::Widget: Win32<br />
}}<br />
<br />
{{Module<br />
|name=XBL<br />
|description=eXtensible Binding Language<br />
|owner=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|peers=<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xbl/%, content/xbl/public/, content/xbl/src/<br />
|url=http://www.mozilla.org/projects/xbl/<br />
|components=Core::XBL<br />
}}<br />
<br />
{{Module<br />
|name=XML<br />
|description=XML in Mozilla, including XML, XHTML, Namespaces in XML, Associating Style Sheets with XML Documents, XML Linking and XML Extras. XML-related things that are not covered by more specific projects.<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking], [mailto:jst@mozilla.org Johnny Stenback], [mailto:sayrer@gmail.com Robert Sayre]<br />
|group=dev-tech-xml<br />
|source_dirs=content/xml/, extensions/xmlextras/, parser/expat/<br />
|url=http://www.mozilla.org/newlayout/xml/<br />
|components=Core::XML<br />
}}<br />
<br />
{{Module<br />
|name=XPApps<br />
|description=Cross-Platform Applications, mostly Navigator front end and application shell.<br />
|owner=[mailto:neil@parkwaycc.co.uk Neil Rashbrook]<br />
|peers=[mailto:dean_tessman@hotmail.com Dean Tessman], [mailto:jag@tty.nl Peter Annema], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-apps-seamonkey<br />
|source_dirs=xpfe/<br />
|url=http://www.mozilla.org/xpapps/<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPCOM<br />
|description=The cross-platform object model and core data structures.<br />
|owner=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|peers=[mailto:dougt@meer.net Doug Turner], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-platform<br />
|source_dirs=startupcache/, tools/wizards/, xpcom/%, xpcom/base/, xpcom/build/, xpcom/components/, xpcom/ds/, xpcom/glue/, xpcom/proxy/, xpcom/sample/, xpcom/stub/, xpcom/tests/, xpcom/threads/, xpcom/tools/, xpcom/windbgdlg/<br />
|url=http://developer.mozilla.org/en/XPCOM<br />
|components=Core::XPCOM<br />
}}<br />
<br />
{{Module<br />
|name=XPConnect<br />
|description=<br />
|owner=[mailto:mrbkap@gmail.com Blake Kaplan]<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:gal@uci.edu Andreas Gal], [mailto:jst@mozilla.org Johnny Stenback], [mailto:peterv@propagandism.org Peter Van der Beken], [mailto:bobbyholley@gmail.com Bobby Holley]<br />
|group=<br />
|source_dirs=js/xpconnect/<br />
|url=<br />
|components=Core::XPConnect<br />
}}<br />
<br />
{{Module<br />
|name=XPIDL<br />
|description=Cross-platform IDL compiler; produces .h C++ header files and .xpt runtime type description files from .idl interface description files. Also produces .java interface files, as part of an experimental java<->xpcom connection layer.<br />
|owner=[mailto:BradleyJunk@cinci.rr.com BradleyJunk@cinci.rr.com]<br />
|peers=[mailto:jband@netscape.com(disabled) jband@netscape.com(disabled)], [mailto:shaver@mozilla.org Mike Shaver], [mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|group=dev-tech-xpcom<br />
|source_dirs=xpcom/typelib/<br />
|url=http://www.mozilla.org/scriptable/xpidl<br />
http://www.mozilla.org/scriptable<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPInstall<br />
|description=<br />
|owner=[mailto:dveditz@cruzio.com Dan Veditz]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg]<br />
|group=dev-tech-xpinstall<br />
|source_dirs=xpinstall/<br />
|url=<br />
|components=Core::Installer: XPInstall Engine<br />
}}<br />
<br />
{{Module<br />
|name=xptcall<br />
|description=XPTCall - platform-specific assembly for calling and implementing arbitrary XPCOM interfaces.<br />
|owner=[mailto:timeless@mozdev.org Josh 'timeless' Soref]<br />
|peers=[mailto:benjamin@smedbergs.us Benjamin Smedberg], [mailto:shaver@mozilla.org Mike Shaver]<br />
|group=dev-xpcom<br />
|source_dirs=xpcom/reflect/xptcall/<br />
|url=http://www.mozilla.org/scriptable/xptcall-faq.html<br />
|components=<br />
}}<br />
<br />
{{Module<br />
|name=XPToolkit<br />
|description=Cross-platform user interface toolkit<br />
|owner=<br />
|peers=[mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:hyatt@mozilla.org Dave Hyatt], [mailto:jag@tty.nl Peter Annema], [mailto:Jan.Varga@gmail.com Jan Varga]<br />
|group=dev-tech-xul<br />
|source_dirs=content/xul/, layout/xul/<br />
|url=http://www.mozilla.org/xpfe/<br />
|components=Core::XP Toolkit/Widgets: Menus, Core::XP Toolkit/Widgets: XUL<br />
}}<br />
<br />
{{Module<br />
|name=XSLT Processor<br />
|description=XSLT transformations processor<br />
|owner=[mailto:peterv@propagandism.org Peter Van der Beken]<br />
|peers=[mailto:axel@pike.org Axel Hecht], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xslt<br />
|source_dirs=content/xslt/<br />
|url=http://www.mozilla.org/projects/xslt/, http://www.w3.org/TR/xslt.html<br />
|components=Core::XSLT<br />
}}<br />
<br />
{{Module<br />
|name=XTF<br />
|description=eXtensible Tag Framework<br />
|owner=<br />
|peers=[mailto:alex@croczilla.com alex@croczilla.com], [mailto:bzbarsky@mit.edu Boris Zbarsky], [mailto:jonas@sicking.cc Jonas Sicking]<br />
|group=dev-tech-xbl<br />
|source_dirs=content/xtf/, layout/xtf/<br />
|url=http://www.croczilla.com/bits_and_pieces/xtf/<br />
|components=Core::XTF<br />
}}<br />
<br />
<noinclude><br />
===Unassigned Bugzilla Components===<br />
<br />
The following Bugzilla components in the Core project have not been assigned to a module (this list is not exhaustive):<br />
<br />
<pre><br />
Core::Event Handling<br />
Core::File Handling<br />
Core::Find Backend<br />
Core::Gecko Profiler<br />
Core::General<br />
Core::HTML: Form Submission<br />
Core::History: Global<br />
Core::Identity<br />
Core::Image Blocking<br />
Core::JavaScript Debugging APIs<br />
Core::Localization<br />
Core::Nanojit<br />
Core::Networking: Domain Lists<br />
Core::Print Preview<br />
Core::Printing: Output<br />
Core::Printing: Setup<br />
Core::Profile: BackEnd<br />
Core::Profile: Migration<br />
Core::Profile: Roaming<br />
Core::QuickLaunch (AKA turbo mode)<br />
Core::Rewriting and Analysis<br />
Core::Selection<br />
Core::Serializers<br />
Core::Spelling checker<br />
Core::Tracking<br />
Core::Video/Audio<br />
Core::Web Services<br />
Core::WebDAV<br />
Core::Widget: OS/2<br />
Core::Widget: Photon<br />
Core::X-remote<br />
Core::XForms<br />
Core::XUL<br />
Core::jemalloc<br />
</pre><br />
</noinclude></div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/WebAPI_Status&diff=454136
MozCampEU2012/WebAPI Status
2012-07-24T21:23:35Z
<p>Mounir.lamouri: </p>
<hr />
<div>Title of Session (should also be the title of your Wiki page): WebAPI Status<br />
<br />
Facilitator(s): Mounir Lamouri<br />
<br />
Are you paid or volunteer staff?: Paid<br />
<br />
Area of Contribution (Team Name): WebAPI<br />
<br />
How are you currently involved with the community?: French Community + volunteers involved with Gecko hacking<br />
<br />
Location of Work (where do you reside?): Paris/London <br />
<br />
Talk Length (please choose between 30, 60, 90, 120 minutes): 30 minutes<br />
<br />
Summary:<br><br />
This talk will sumarrize what happened in the WebAPI effort since the last MozCamp (which was nearly the beginning of the project). What APIs have been implemented, how the work is going with standard bodies, etc. It will also give an overview of what is going to happen in a near future.<br><br />
This talk might give an non-exhaustive list of WebAPIs but will unlikely give examples on how to use them.<br />
<br />
How your session furthers the MozCamp Goals (https://wiki.mozilla.org/MozCampEU2012/Tracks):<br><br />
WebAPI is the team involved in making and standardizing the new Web APIs needed for B2G. This talk will allow developers to understand where this work is and the path it is taking.<br />
<br />
Expected Outcome or Deliverable:<br><br />
Good understanding on how Mozilla is working to make B2G new APIs standards in the Web.<br />
<br />
Desired Audience Type or Skill-set:<br><br />
Web Developers<br><br />
Anyone interested in Web Standards<br />
<br />
Equipment Needs (Video projector already included): none<br />
<br />
--------------------------------------------------------------------<br />
<br />
To Be Completed by the Audience-<br />
<br />
(If you would like) Submit a Question for the Speaker(s) or indicate what <br />
information you hope to gain by attending this talk here:<br />
<br />
Place your name here if you would like to attend this talk:</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/Schedule/appsandb2g&diff=454133
MozCampEU2012/Schedule/appsandb2g
2012-07-24T21:19:27Z
<p>Mounir.lamouri: /* Boot-to-Gecko and Apps */</p>
<hr />
<div>==Boot-to-Gecko and Apps==<br />
<br />
List of Session Proposals:<br />
<br />
1. [https://wiki.mozilla.org/MozCampEU2012/Bootstrap-Your-Apps-With-Mortar Bootstrap Your Apps With Mortar]<br />
<br />
2. [https://wiki.mozilla.org/MozCampEU2012/Introduction-To-The-WebAPIs Introduction To The WebAPIs]<br />
<br />
3. [https://wiki.mozilla.org/MozCampEU2012/Design-Principles-behind-the-Firefox-OS-UX Design Principles behind the Firefox OS UX]<br />
<br />
4. [https://wiki.mozilla.org/MozCampEU2012/Javascript-optimizations-for-your-Apps Javascript optimizations for your Apps]<br />
<br />
5. [https://wiki.mozilla.org/MozCampEU2012/Mozilla_Marketplace_%28Apps%29_on_Desktop,_Smartphone,_Tablet Mozilla Marketplace (Apps) on Desktop, Smartphone, Tablet (Technical Resources, Demos and more)]<br />
<br />
6. [https://wiki.mozilla.org/MozCampEU2012/Exploring_Touchevents Exploring Touchevents]<br />
<br />
7. [https://wiki.mozilla.org/MozCampEU2012/Introducing_ical.js_for_Apps_and_the_Web Introducing ical.js for Apps and the Web]<br />
<br />
8 [https://wiki.mozilla.org/MozCampEU2012/B2G_and_Apps_Security B2G and App Security Model - Talk and Workshop]<br />
<br />
9. [https://wiki.mozilla.org/MozCampEU2012/B2G_Game_Development B2G game development]<br />
<br />
10. [https://wiki.mozilla.org/MozCampEU2012/How_marketing_Firefox_OS_is_different How marketing Firefox OS is different (and how you can help!)]<br />
<br />
11. [https://wiki.mozilla.org/MozCampEU2012/Marketplace_Reviews Marketplace Reviews]<br />
<br />
12. [https://wiki.mozilla.org/MozCampEU2012/FirefoxOS_support Firefox OS Support]<br />
<br />
13. [https://wiki.mozilla.org/MozCampEU2012/WebAPI_Status WebAPI Status]</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=MozCampEU2012/WebAPI_Status&diff=454131
MozCampEU2012/WebAPI Status
2012-07-24T21:18:44Z
<p>Mounir.lamouri: Created page with "Title of Session (should also be the title of your Wiki page): WebAPI Status Facilitator(s): Mounir Lamouri Are you paid or volunteer staff?: Paid Area of Contribution (Team N..."</p>
<hr />
<div>Title of Session (should also be the title of your Wiki page): WebAPI Status<br />
<br />
Facilitator(s): Mounir Lamouri<br />
<br />
Are you paid or volunteer staff?: Paid<br />
<br />
Area of Contribution (Team Name): WebAPI<br />
<br />
How are you currently involved with the community?: French Community + volunteers involved with Gecko hacking<br />
<br />
Location of Work (where do you reside?): Paris/London <br />
<br />
Talk Length (please choose between 30, 60, 90, 120 minutes): 30 minutes<br />
<br />
Summary:<br />
This talk will sumarrize what happened in the WebAPI effort since the last MozCamp (which was nearly the beginning of the project). What APIs have been implemented, how the work is going with standard bodies, etc. It will also give an overview of what is going to happen in a near future.<br><br />
This talk might give an non-exhaustive list of WebAPIs but will unlikely give examples on how to use them.<br />
<br />
How your session furthers the MozCamp Goals (https://wiki.mozilla.org/MozCampEU2012/Tracks):<br />
WebAPI is the team involved in making and standardizing the new Web APIs needed for B2G. This talk will allow developers to understand where this work is and the path it is taking.<br />
<br />
Expected Outcome or Deliverable:<br />
Good understanding on how Mozilla is working to make B2G new APIs standards in the Web.<br />
<br />
Desired Audience Type or Skill-set:<br />
Web Developers<br />
Anyone interested in Web Standards<br />
<br />
Equipment Needs (Video projector already included): none<br />
<br />
--------------------------------------------------------------------<br />
<br />
To Be Completed by the Audience-<br />
<br />
(If you would like) Submit a Question for the Speaker(s) or indicate what <br />
information you hope to gain by attending this talk here:<br />
<br />
Place your name here if you would like to attend this talk:</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435741
WebAPI/WebActivities
2012-05-30T18:28:23Z
<p>Mounir.lamouri: /* More information */ add explanation about activity names</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Activity names ===<br />
<br />
Basic activities will have simple names like ''edit'', ''view'', ''pick'' or ''share'' (this is non-exhaustive). A set of basic activities should be define in the initial specification. Defininig will imply specifying how ''data'' should be structured to be considered valid and how the return value (if any) should be structured too.<br />
<br />
Any other specification will be able to create new activities. For example, a Messaging specification might add 'send-sms'.<br />
<br />
Any application will be able to create new activities. Any application is able to register itself as handling the activity ''foobar'' and any application is able to start the activity ''foobar''.<br><br />
However, to prevent naming collision, we recommend such proprietary naming to be prefixed with an URL. For example: ''example.org/foobar'' or ''org.example.foobar'' (doesn't matter that much).<br />
<br />
=== Handling an activiy ===<br />
<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
=== Declarative registration ===<br />
<br />
Open Web App Manifest should include a way to register activities declaratively. The format would look like this:<br />
"activities": {<br />
"share": {<br />
"filters": {<br />
type: ["image/png", "image/gif"],<br />
}<br />
"href": "foo.html",<br />
"disposition": "window"<br />
}<br />
}<br />
<br />
For non-installed applications, this API doesn't yet define how to do a declarative registration. However, it doesn't sound very useful for the moment to have such mechanism. However, if it had to be added, adding a new element into the <head> would seem like the most appropriate solution (or using an already existing one). The only advantage of adding a new element inside the <body> is that we don't have to worry about the <head> parsing issues.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onerror = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435729
WebAPI/WebActivities
2012-05-30T18:19:29Z
<p>Mounir.lamouri: /* Launch an activity */ fix typo</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Handling an activiy ===<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
=== Declarative registration ===<br />
<br />
Open Web App Manifest should include a way to register activities declaratively. The format would look like this:<br />
"activities": {<br />
"share": {<br />
"filters": {<br />
type: ["image/png", "image/gif"],<br />
}<br />
"href": "foo.html",<br />
"disposition": "window"<br />
}<br />
}<br />
<br />
For non-installed applications, this API doesn't yet define how to do a declarative registration. However, it doesn't sound very useful for the moment to have such mechanism. However, if it had to be added, adding a new element into the <head> would seem like the most appropriate solution (or using an already existing one). The only advantage of adding a new element inside the <body> is that we don't have to worry about the <head> parsing issues.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onerror = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435724
WebAPI/WebActivities
2012-05-30T18:17:47Z
<p>Mounir.lamouri: /* More information */ add a declarative registration sub-section</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Handling an activiy ===<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
=== Declarative registration ===<br />
<br />
Open Web App Manifest should include a way to register activities declaratively. The format would look like this:<br />
"activities": {<br />
"share": {<br />
"filters": {<br />
type: ["image/png", "image/gif"],<br />
}<br />
"href": "foo.html",<br />
"disposition": "window"<br />
}<br />
}<br />
<br />
For non-installed applications, this API doesn't yet define how to do a declarative registration. However, it doesn't sound very useful for the moment to have such mechanism. However, if it had to be added, adding a new element into the <head> would seem like the most appropriate solution (or using an already existing one). The only advantage of adding a new element inside the <body> is that we don't have to worry about the <head> parsing issues.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onsuccess = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435719
WebAPI/WebActivities
2012-05-30T18:12:53Z
<p>Mounir.lamouri: /* Registration */</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Handling an activiy ===<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Arguments for {un,}registerActivityHandler and isActivityHandlerRegistered ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onsuccess = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435714
WebAPI/WebActivities
2012-05-30T18:09:50Z
<p>Mounir.lamouri: /* Proposed API */ fix typo</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityHandlerDescription d);<br />
void unregisterActivityHandler(ActivityHandlerDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandlerDescription handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Handling an activiy ===<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Registration ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onsuccess = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435713
WebAPI/WebActivities
2012-05-30T18:09:13Z
<p>Mounir.lamouri: Add some explanations</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityDescription d);<br />
void unregisterActivityHandler(ActivityDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandler handler);<br />
};<br />
<br />
== More information ==<br />
Some various explanation regarding part of this API that are not self-explanatory.<br />
<br />
=== Handling an activiy ===<br />
Handling activities will be done trough [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler]. An ''ActivityHandlerRequest'' will be passed in the Message.<br />
<br />
=== More information about ActivityOptions ===<br />
<br />
Activities are defined with a name and some data. Those data can be stuff like the image to send, the type of the object or anything the activity will require. Activities with a specific name should have<br />
specific data the handlers will expect to see. <br><br />
That means the initial specification should specify a set of basic activities.<br />
<br />
=== More information about ActivityHandlerDescription ===<br />
<br />
* ''href'': can be used to register an activity handler in another page. Needs to be same origin.<br />
* ''disposition'': could be ''window'' or ''inline'' for the moment. ''window'' means it will show a new window/tab. ''inline'' means it will be shown above the current content. This is only a hint for the UA.<br />
* ''returnValue'': the UA might want to know if the activity will return a value. For the basic activities (view, edit, etc.) the UA knows that but we need that at least for proprietary activities.<br>This seems seems to be needed to be able to send a ''success'' or ''error'' event when appropriate. If an application doesn't return a value, the UA might want to send a ''success'' event as soon as an application has been picked. If a value is expected, this event will have to wait ''postResult()'' to be called. Note that UA is expected to send an ''error'' event at some point if ''postError'' nor ''postResult'' are called. For example, if the user leaves the application (close the tab on desktop or goes back to the homescreen on a mobile device).<br />
* ''filters'': this object should mirror ''data'' from ''ActivityOptions'' but the values for each fields can be an Array of string, a string or a regexp.An activity will be considered as able to handle an activity only if the filters are all satisfied. An array means OR for each items. If there is no filter value for a field, that means it is always satisfied.<br />
<br />
=== Registration ===<br />
<br />
You do not need to pass the same ''ActivityHandlerDescription'' object to have ''registerActivityHandler'', ''unregisterActivityHandler'' and ''isActivityHandlerRegistered'' working. You only need to pass an instance of ''ActivityHandlerDescription'' with the same attribute values.<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onsuccess = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri
https://wiki.mozilla.org/index.php?title=WebAPI/WebActivities&diff=435679
WebAPI/WebActivities
2012-05-30T17:53:04Z
<p>Mounir.lamouri: Some examples</p>
<hr />
<div>== Introduction ==<br />
<br />
Web Activities is a counter-proposal to Web Intents. It is trying to limit the scope of the API to the following use case: ''APP A wants to delegate an activity to APP B''. Web Activities isn't a discovery API or a communication API. Those things happen in the background and are completely transparent to the caller.<br />
<br />
== Dependencies ==<br />
<br />
This API depends on two APIs that are not currently part of any specification: [https://groups.google.com/group/mozilla.dev.webapi/browse_thread/thread/a3c6e4c31d04b663/ System Message Handler] and [https://developer.mozilla.org/en/DOM/DOMRequest DOMRequest].<br />
<br />
== Proposed API ==<br />
<br />
interface ActivityOptions {<br />
attribute DOMString name;<br />
attribute Object? data; // a dictionary<br />
};<br />
<br />
[Constructor(DOMString name)]<br />
interface ActivityHandlerDescription {<br />
attribute DOMString name; // default has to be passed to ctor<br />
attribute DOMString href; // default is current location<br />
attribute DOMString disposition; // going to be an enum with a default<br />
attribute boolean returnValue;<br />
attribute Object? filters; // a dictionary<br />
};<br />
<br />
interface ActivityRequestHandler {<br />
void postResult(any result);<br />
void postError(DOMString error);<br />
readonly attribute ActivityOptions source;<br />
};<br />
<br />
[Constructor(ActivityOptions options)]<br />
interface Activity : DOMRequest {<br />
};<br />
<br />
partial interface Navigator {<br />
DOMRequest registerActivityHandler(ActivityDescription d);<br />
void unregisterActivityHandler(ActivityDescription d);<br />
bool isActivityHandlerRegistered(ActivityHandler handler);<br />
};<br />
<br />
== Examples ==<br />
The ''data'' structure used in those the activities used in those examples shouldn't be considered as near to anything final. It is just a snapshot on how it could look like. Those examples goal is to underline the use of the API.<br />
=== Launch an activity ===<br />
View a png image:<br />
var a = new Activity({ name: "view", data: { type: "image/png", url: ... }});<br />
a.onerror = function() { alert("Can't view the image!"); };<br />
<br />
Pick an image:<br />
var a = new Activity({ name: "pick", data: { type: "image/png", multiple: false }});<br />
a.onsuccess = function() { var image = a.result; doSomethingWithImage(image); });<br />
a.onsuccess = function() { alert("Failure when trying to pick an image!"); });<br />
<br />
=== Register to handle an activity ===<br />
View a png image:<br />
var r = navigator.registerActivityHandler({ name: "view", disposition: "inline",<br />
filters: { type: "image/png" }});<br />
r.onerror = function() { alert("failed to register activity"); }<br />
<br />
View a png/gif image in another page than the current one:<br />
navigator.registerActivityHandler({ name: "view", href: "image-viewer.html", disposition: "inline",<br />
filters: { type: ["image/png", "image/gif"] }});<br />
<br />
View only HTML pages from example.org:<br />
navigator.registerActivityHandler({ name: "view", filters: { url: /https?:\/\/example.org\/.*/ }});<br />
<br />
=== Handle an activity request ===<br />
View a png image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
// We can't be handling an activity that isn't what we asked, because of |filters|.<br />
var i = getImageObject();<br />
i.src = a.source.url;<br />
<br />
// We do not call a.postResult() or a.postError() because this activity shouldn't return a value.<br />
});<br />
<br />
Pick an image:<br />
navigator.setMessageHandler('activity', function(a) {<br />
var image = getImageToReturn();<br />
if (!image) {<br />
a.postError("NoImage");<br />
return;<br />
}<br />
a.postResult({ type: "image/png", url: image });<br />
});</div>
Mounir.lamouri