FlyWeb
Note: This project is not being actively maintained. Information below is provided for archival purposes.

Program Description
The web already powers the world's email, media, shopping, and more. Interacting with these things is a breeze because they all use the web. What if the electronics around us were the same?
Meet FlyWeb. FlyWeb is a very simple idea at its core. Instead of phones interacting only with the cloud, they can discover and interact with electronics around them that are running empty web clients, such as TV's, projectors, game consoles, etc. The electronics come to life when connected to phones. The key here is that either the phones serve web apps to these electronics, or the electronics serve web apps to the phones.
Why?
The connected devices market is ready to explode. As the market grows, much like the early internet, these devices are being segregated into walled gardens of one-off proprietary initiatives, such as AirPlay, the Google Cast API, etc. These solutions not only lock their users into specific vendor ecosystems -- to the benefit of those vendors and detriment of their users -- but also require significant investment to solve each use case.
Many of these connected devices initiatives have common underlying platform needs:
- to discover and connect devices together,
- enable bi-directional communication,
- allow arbitrary, but secure code execution on each side,
- and require knowledge of as few details of a device's peers as possible.
The web is the best platform for serving all of these needs. Indeed, it has been designed for them for over a decade.
User Stories and Acceptance Criteria
Coming soon!
Program Status
Milestone | Date | Status |
---|---|---|
MozFest Demo | 11/6-7/2015 | DONE |
Mozlando Demo | 12/7-11/2015 | DONE |
Platform Development | 1/2016 | ON TARGET |
Land on Master | 6/2016 | ON TARGET |
London All Hands Conference | 6/2016 | ON TARGET |
Program Timeline
Detailed Milestones
Milestone | Status |
---|---|
FlyWeb internal (privileged) APIs written up in WebIDL and implemented. | DONE |
FlyWebDiscoveryManager WebIDL class that serves as an abstract fronted for service-discovery across multiple transports. | DONE |
An internet-and-mdns-specific backend implementation for FlyWebDiscoveryManager that lets the APIs discover ‘_http._tcp’ and ‘_flyweb._tcp’ services advertised on the local network via MDNS (Bonjour). | DONE |
Integration with the firefox UI to present a toolbar button that lists discovered FlyWeb services in a menu. | DONE |
When the user selects a menu item, open a tab that browses to the service (currently using an ip-based URL). | DONE |
Implementation of initial ‘publishServer’ and ‘connectToService’ web APIs exposed to content. | DONE |
Addition of a temporary “FlyWeb” protocol (flyweb://) to enable testing and mockup of an http-like server embedded in gecko | DONE |
Implement anonymous, browser-based naming of services. For security purposes, the browser will have to assign a token hostname to a service as needed, and route that hostname to the service’s IP address (bypassing normal DNS mechanics). | DONE |
Modify the “publishServer” Web API to hook into FlyWeb’s backend service publishing API. | DONE |
Modify the "publishServer" API to implement a http server rather than the custom flyweb:// protocol. | DONE |
Modify the "publishServer" API to implement a http server rather than the custom flyweb:// protocol. | ON TARGET |
Implement JS fallback mDNS implementation (Android, Windows) | ON TARGET |
Draft web API | ON TARGET |
Draft protocol spec for FlyWeb | ON TARGET |
Wi-Fi Direct transport implementation on Android | ON TARGET |
Implement Certificate protocol for encrypted communication | ON TARGET |
Implement Stable Naming based on Certs | ON TARGET |
All-Hands Conference Demo implementation | ON TARGET |
Maker community for IoT use cases | ON TARGET |
Web dev community for Peer-2-Peer use cases | ON TARGET |
MVP Scope
54 Total; 1 Open (1.85%); 52 Resolved (96.3%); 1 Verified (1.85%);
Program Stakeholders
Role | Name | IRC |
---|---|---|
EPM | Nicole Yee | nicoleyee |
EM | Jonas Sicking | sicking |
TL | Kannan Vijayan | djvj |
Engineering | Justin D'Arcangelo | justindarc |
- EPM = Engineering Program Manager
- EM = Engineering Manager
- TL = Tech Lead
Reference Links
Demo Videos
Proposal
Security
- A discussion about FlyWeb security by Ekr
- A list of example scenarios that are useful when discussing security
Communication
Video Conferencing - Vidyo Room
Quick link to join with the Vidyo app (prompts install if needed)
We have our own Vidyo room for meetings. Contributors and non-employees are welcome to attend all meetings. Here are the full details for joining:
"FlyWeb" Vidyo Room |
---|
Hello, |
Project Management
We use Trello for project management. All ongoing tasks are listed there.
Meetings
Calendar
The FlyWeb team has a public calendar with every team meeting.
Instructions for Adding to your Calendar
- Open the calendar.
- Click on the "+ Google Calendar" button in the very bottom right of your screen.
You can also use the XML and ICS methods, but these are not recommended.
Note: The "Find a Time" feature will not work for other people if you import this calendar. As a consequence, others will not see that you are unavailable when attending a FlyWeb meeting. We suggest either accepting this, or adding the meetings to your main calendar as well.
Standups
We have two weekly standups, with both times available on the Public Calendar. These standups happen in the FlyWeb Vidyo room.
All meeting minutes
2016
2015-Q3
See Also
- User and Market Research: Due to the confidential nature of the interviews, and our respect for our interviewees' privacy, we are restricting access to this information.