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
Full Query
ID |
Summary |
Status |
Target milestone |
Resolution |
Assigned to |
Depends on |
Blocks |
Whiteboard |
Feature b2g |
1228667 |
Implement FlyWeb service discovery |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
|
--- |
1228948 |
Implement FlyWeb communication protocol and API |
RESOLVED |
--- |
DUPLICATE |
Jonas Sicking (:sicking) No longer reading bugmail consistently |
|
1228662 |
|
--- |
1244299 |
Implement FlyWeb Routing Abstraction for MDNS services |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1245963 |
Integrate Kannan and Jonas FlyWeb code |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1247680 |
[mDNS] Provide a JS implementation for mDNS service advertisement |
RESOLVED |
--- |
FIXED |
Justin D'Arcangelo [:justindarc] |
1264730, 1259144, 1264034, 1264727, 1264732 |
1228662 |
[ft:conndevices][necko-would-take] |
--- |
1247724 |
[FlyWeb] Update popover UI to conform to existing styles |
RESOLVED |
--- |
FIXED |
Justin D'Arcangelo [:justindarc] |
|
1228662 |
|
--- |
1247727 |
[FlyWeb] Implement FlyWeb UI for Fennec |
RESOLVED |
--- |
FIXED |
Justin D'Arcangelo [:justindarc] |
|
1228662 |
|
--- |
1249099 |
[FlyWeb] Expose MDNS TXT records as metadata on discovered services. |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1249101 |
[FlyWeb] Unify different advertisements for same service. |
RESOLVED |
--- |
WONTFIX |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-would-take] |
--- |
1250553 |
[FlyWeb] Lock FlyWebMDNService::mServiceMap because it's accessed from multiple threads. |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
|
--- |
1251096 |
[FlyWeb] Allow multiple AN entries in mDNS responses when parsing with MulticastDNSFallback.jsm |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1251099 |
[FlyWeb] Use dot-suffixed names when discovering mDNS services. |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
|
--- |
1253761 |
[FlyWeb] Implement WiFi-Direct backend on Android |
RESOLVED |
--- |
WONTFIX |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-would-take] |
--- |
1256456 |
[UX] Provide initial design for Flyweb UI |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
|
--- |
1257002 |
[FlyWeb] Crash on Android when connecting to FlyWeb service |
RESOLVED |
--- |
WORKSFORME |
Justin D'Arcangelo [:justindarc] |
|
1228662 |
[necko-active] |
--- |
1257280 |
[FlyWeb] Improve discovery frontend API |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-active] |
--- |
1260213 |
Set extensions.systemAddon.update.url to enable system add-ons infrastructure for Fennec |
VERIFIED |
Firefox 60 |
FIXED |
Robert Helmer [:rhelmer] |
|
1228662, 1265442, 1356331 |
|
--- |
1261901 |
[FlyWeb] Can no longer build larch branch for Fennec |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
|
--- |
1263991 |
[FlyWeb] Make publishServer support e10s |
RESOLVED |
mozilla50 |
FIXED |
Jonas Sicking (:sicking) No longer reading bugmail consistently |
1287163 |
1228662 |
btpp-fixlater |
--- |
1263998 |
Crash when creating new Response object. |
RESOLVED |
--- |
INVALID |
|
|
1228662 |
|
--- |
1264733 |
[FlyWeb] List of discovered services is still unstable |
RESOLVED |
--- |
WORKSFORME |
|
|
1228662 |
[necko-would-take] |
--- |
1265441 |
[FlyWeb] Move FlyWeb UI implementation for Desktop to system add-on |
RESOLVED |
--- |
FIXED |
Justin D'Arcangelo [:justindarc] |
|
1228662 |
[necko-would-take] |
--- |
1265442 |
[FlyWeb] Move FlyWeb UI implementation for Fennec to system add-on |
RESOLVED |
--- |
FIXED |
Justin D'Arcangelo [:justindarc] |
1260213 |
1228662 |
[necko-would-take] |
--- |
1265474 |
Ensure flyweb has no impact on Fennec battery performance |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-would-take] |
--- |
1265481 |
Consider packaging FlyWeb UI for Fennec as opt-in add-on on AMO for Beta and Release |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-would-take] |
--- |
1271807 |
[FlyWeb] Expose the server URL in addition to server hostname |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1272092 |
[FlyWeb] Review for landing in mozilla-central |
RESOLVED |
--- |
FIXED |
|
1272099, 1272100, 1272101, 1272102, 1272107, 1273279, 1275714 |
1228662 |
[necko-would-take] |
--- |
1272406 |
[FlyWeb] Published server is not shut down when tab is closed |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1272432 |
[FlyWeb] Always set attributes in nsDNSServicediscovery when resolving service. |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1272678 |
[FlyWeb] Crash on linux in FlyWebMDNSService::DiscoveredInfo::DiscoveredInfo when trying to get attributes |
RESOLVED |
--- |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-active] |
--- |
1273454 |
[FlyWeb] Simplify mDiscoveryManagerTable |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1273677 |
TLSServerSocket doesn't properly set up the session cache |
RESOLVED |
mozilla49 |
FIXED |
Dana Keeler (she/her) (use needinfo) [:keeler] |
|
1228662 |
[ft:conndevices][necko-active] |
--- |
1274343 |
Add parent-to-child pipe streaming to IPCStream |
RESOLVED |
mozilla55 |
FIXED |
Andrea Marchesini [:baku] |
1093357, 1333973, 1357286 |
1110596, 1283191, 1228662, 1277744 |
btpp-active |
--- |
1275373 |
[FlyWeb] Improve nsNetworkInfoService's GetHostname implementation on Windows and OSX. |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-backlog] |
--- |
1275390 |
[FlyWeb] Look into unifying necko and flyweb HTTP parsing code |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-backlog] |
--- |
1275396 |
[FlyWeb] Fix same-line control flow syntax in netwerk/dns/mdns/libmdns/MDNSResponderOperator.cpp |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-would-take] |
--- |
1275645 |
[FlyWeb] larch build busted due to undeclared use of gethostname |
RESOLVED |
--- |
FIXED |
|
|
1228662 |
|
--- |
1275955 |
[FlyWeb] Get green on treeherder for landing |
RESOLVED |
--- |
FIXED |
|
1275956, 1275959, 1275962, 1275991 |
1228662 |
[necko-would-take] |
--- |
1279272 |
[FlyWeb] Add back l10n support for FlyWeb system addon |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
|
--- |
1286636 |
[FlyWeb] Use unbound UDP socket for mDNS queries |
RESOLVED |
mozilla50 |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-active] |
--- |
1292639 |
[FlyWeb] Ask user permission before allowing navigator.publishServer |
RESOLVED |
mozilla51 |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662 |
|
--- |
1294772 |
[FlyWeb] NS_ERROR_FAILURE on 'Nightly' builds for Windows and Linux |
RESOLVED |
mozilla51 |
FIXED |
Kannan Vijayan [:djvj] |
1295870 |
1228662 |
[necko-would-take] |
--- |
1296464 |
[FlyWeb] Machines with multiple interfaces cause duplicate advertisements on all interfaces |
RESOLVED |
mozilla52 |
FIXED |
|
|
1228662, 1298463, 1299866 |
|
--- |
1298463 |
[FlyWeb] mDNS services on ESP8266 devices not discoverable in Fennec |
RESOLVED |
--- |
WORKSFORME |
Justin D'Arcangelo [:justindarc] |
1296464 |
1228662 |
[necko-active] |
--- |
1299866 |
[FlyWeb] mDNS services discovered remain after network change |
RESOLVED |
mozilla52 |
FIXED |
Justin D'Arcangelo [:justindarc] |
1296464 |
1228662 |
[necko-active] |
--- |
1301091 |
[FlyWeb] Tab crashes when publishServer-hosting-page receives an incoming connection. |
RESOLVED |
mozilla51 |
FIXED |
Kannan Vijayan [:djvj] |
|
1228662, 1291652 |
|
--- |
1301454 |
[FlyWeb] Implement integration tests |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
|
--- |
1303454 |
[FlyWeb] publishServer() broken on Fennec |
RESOLVED |
mozilla52 |
FIXED |
|
|
1228662 |
|
--- |
1303865 |
[FlyWeb] Fix shutdown leak of FlyWebService |
RESOLVED |
mozilla52 |
FIXED |
|
|
1228662 |
|
--- |
1311188 |
Security Review: Flyweb |
NEW |
--- |
|
|
|
1228662 |
|
--- |
1315437 |
FlyWeb crash: [@mozilla::MozPromise<RefPtr<mozilla::dom::FlyWebPublishedServer>, nsresult, false>::ThenValueBase::AssertIsDead()] |
RESOLVED |
--- |
INVALID |
Kannan Vijayan [:djvj] |
|
1228662 |
[necko-would-take] |
--- |
1335286 |
[meta] FlyWeb HTTPS Implementation |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
|
--- |
1352933 |
[FlyWeb] Stable naming implementation |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
|
--- |
1368640 |
flyweb: service name split on dot |
RESOLVED |
--- |
WONTFIX |
|
|
1228662 |
[necko-would-take] |
--- |
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
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,
You have been invited to attend a Mozilla Vidyo conference. Please click on the link below to attend:
https://v.mozilla.com/flex.html?roomdirect.html&key=kMx0n47x0LUONw0P2Zhr2HDS0b0
If you do not have a user account, please enter your name in the "Guest Name" field and then click "Join".
To join from a telephone, dial one of the following numbers depending on your nearest location:
US Toll Free +1 800 707 2533, pin 369, conf 98860
US/CA/Mountain View +1 650 903 0800, extension 92, 98860
US/CA/San Francisco: +1 415 762 5700, extension 92, 98860
US/OR/Portland: +1 971 544 8000, extension 92, 98860
CA/BC/Vancouver: +1 778 785 1540, extension 92, 98860
CA/ON/Toronto: +1 416 848 3114, extension 92, 98860
UK/London: +44 (0)207 855 3000, extension 92, 98860
FR/Paris: +33 1 184 883 737, extension 3, extension 92, 98860
DE/Berlin: +49 30 983 333 000, extension 92, 98860
NZ/Auckland: +64 9 555 1100, extension 92, 98860
|
Project Management
Trello dashboard
We use Trello for project management. All ongoing tasks are listed there.
Meetings
Calendar
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.
Strategy Essays
Related Initiatives
Related APIs