WebAPI

Revision as of 17:43, 18 August 2011 by Azakai (talk | contribs) (→‎Use Cases)

The Mozilla WebAPI team is pushing the envelope of the web to include --- and in places exceed --- the capabilities of competing stacks.

Contributing

WebAPI work is being tracked by Mozilla bug 673923. Find an dependent bug that interests you (and is unassigned), and assign it to yourself.

Use Cases

We are aiming at providing all the necessary APIs to build a basic HTML5 phone experience within the next 3-6 months.

Application Required APIs
Dialer Telephony & Messaging API, Contacts API
Address Book Contacts API
SMS Telephony & Messaging API, Contacts API
Clock -
Camera Camera API, Filesystem API
Gallery Filesystem API
Calculator -
Settings Device Status API, Settings API
Games Accelerometer API, Mouse Lock API
Maps Geolocation API, Contacts API

Mozilla will most likely not implement the FileSystem API. For local file access, we have implemented FileReader and plan to implement FileWriter. A file system abstraction can additionally be built on top of IndexedDB.

Legend
Work in progress, see linked bug
Implemented but not shipped yet
Shipped in Firefox already

Process

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 an initial implementation is available on trunk, we will submit the new API for standardization to the W3C.

Design Principals

Security

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 users contact list, or able to issue arbitrary commands to any USB device which is hooked up to the users computer.

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.

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.

Low Level vs. High Level

One question that often comes up, is should we do low level APIs, like USB access, or high level APIs, like camera access?

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.

Meetings

  • Tuesday @ 10:00am PDT
  • Dial-in: Audio-only conference# 9254
    • People with Mozilla phones or softphones please dial x4000 Conf# 9254
    • US/Toll-free: +1 800 707 2533, (pin 4000) Conf# 9254
    • US/California/Mountain View: +1 650 903 0800, x4000 Conf# 9254
    • US/California/San Francisco: +1 415 762 5700, x4000 Conf# 9254
    • US/Oregon/Portland: +1 971 544 8000, x4000 Conf# 9254
    • CA/British Columbia/Vancouver: +1 778 785 1540, x4000 Conf# 9254
    • CA/Ontario/Toronto: +1 416 848 3114, x4000 Conf# 9254
    • UK/London: +44 (0)207 855 3000, x4000 Conf# 9254
    • FR/Paris: +33 1 84 88 37 37, x4000 Conf# 9254
    • Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn't look like it accepts phone numbers
    • SkypeOut is free if you use the 800 number
  • (you can also join room 254 on vidyo if you have a mozilla account)
  • *1 to unmute yourself
  • join irc.mozilla.org #webapi for back channel

Communication

Mailing-list / Newsgroup

You can subscribe to the mailing list here: https://lists.mozilla.org/listinfo/dev-webapi

And the web based API is here: http://groups.google.com/group/mozilla.dev.webapi/topics

The newsgroup lives on the news.mozilla.org server and has the name mozilla.dev.webapi

IRC

Find us on irc.mozilla.org in #webapi. Need help to use Mozilla IRC servers?