WebAPI/PresentationAPI: Difference between revisions
< WebAPI
Jump to navigation
Jump to search
(→Advanced Functionalities: update bug status) |
(update references for spec, protocol, and use cases) |
||
Line 4: | Line 4: | ||
For retrieving available devices information, please refer to [[WebAPI/PresentationDeviceInfoAPI|Presentation Device Info API]]. | For retrieving available devices information, please refer to [[WebAPI/PresentationDeviceInfoAPI|Presentation Device Info API]]. | ||
== Specification == | |||
* [https://www.w3.org/TR/presentation-api/ Latest W3C specification] | |||
* [[WebAPI/PresentationAPI:Protocol Draft|Protocol Draft]] | |||
== Use case == | == Use case == | ||
See [https://github.com/w3c/presentation-api/blob/gh-pages/uc-req.md Use Cases and Requirements] | |||
== Interface == | == Interface == |
Revision as of 03:43, 28 March 2016
Introduction
Presentation API enables web content to access external presentation-type displays and use them for presenting web content. With this API, web page can initiate and control an presentation request.
For retrieving available devices information, please refer to Presentation Device Info API.
Specification
Use case
See Use Cases and Requirements
Interface
Presentation
- WebIDL
- defaultRequest is not supported yet.
PresentationRequest
- WebIDL
- support URL with http:// protocol scheme to open web page in private browsing mode
- support URL with app:// protocol scheme to launch an packaged app installed on target device
- can only launch packaged apps with "presentation" permission declared
- session reconnect is not supported yet. bug 1197690 (NEW)
PresentationReceiver
- WebIDL
- many-to-one session is not supported yet. bug 1195605 (NEW)
PresentationConnection
- WebIDL
- Binary type message is not supported yet. bug 1148307 (ONGOING)
- session close is not supported yet. bug 1210340 (NEW)
PresentationAvailability
Architecture
Here is the high-level architecture overview of Presentation API.
WebIDL Implementation
- Provide the WebAPI interface
Core Service
- Maintain the session state and app-to-app transportation channel
- Handle the session setup procedure
- Live in chrome process
Device Manager
- Load registered device provider at start-up automatically
- Provide device list and firing availability event
- Live in chrome process
Device Provider
- Implement device discovery mechanism
- Handle control channel setup procedure
- Live in chrome process
Browser/System UI Glue
- Handle device selection and application launch
- Live in chrome process
Development Plan
Basic Functionalities
- Stage 1: Enable 2-UAs mode on Firefox OS, for privilege apps only.
- Implement Presentation API (Bug 1069230 (RESOLVED) and Bug 1148307 (ON GOING))
- Provide MDNS provider on Firefox OS (Bug 1115480 (RESOLVED))
- Provide device selection/configuration UI on Firefox OS (Bug 1161440 (RESOLVED))
- need UX input for both phone and TV
- The initial version of UI should be simple without detailed security design, but keep pref off after check-in
- pref on after security team confirmation.
- Stage 2: Integrated with media fling on Firefox for Android.
- Provide MDNS provider on Firefox for Android. (Bug 1158029 (RESOLVED))
- Add Presentation Device as a fling service device. (Bug 1129785 (RESOLVED))
- Stage 3: Enable 1-UAs mode on Firefox OS for HDMI and Wifi display.
- Enable multi-window for HDMI (Bug 1116089 (ON GOING)) and Wifi display (Bug 925615 (ON GOING))
- Implement HDMI/Wifi display device provider (Bug 1208417 (ON GOING))
- Make Gaia use presentation API (Bug 1235124 (RESOLVED))
- Stage 4: Enable in HTTPS web pages for all platforms.
- Provide MDNS provider on all supported desktop platforms
- Windows (Bug 1239909 (NEW))
- Linux (Bug 1225736 (NEW))
- Mac OSX (Bug 1225726 (RESOLVED))
- Provide device selection/configuration UI on Firefox and Firefox for Android (Bug 1232105 (NEW)).
- Change permission model for Presentation API.
- Provide MDNS provider on all supported desktop platforms
Advanced Functionalities
- Enable 1-UA mode for Chromecast/DIAL app to increase device compatibility
- Chromecast integration (Bug 1252788 (NEW))
- Support different URL scheme, e.g. data, file
- Support session resume for improving cross device task continuity (Bug 1197690 (NEW))
- Support multiple session (n:1) to support wider user scenario, e.g. multi-player game. (Bug 1195605 (NEW))