w3c / presentation-api

Presentation API
https://www.w3.org/TR/presentation-api/
Other
71 stars 39 forks source link

Investigate possible compatibility with HbbTV #67

Open anssiko opened 9 years ago

anssiko commented 9 years ago

We should understand the constraints that a possible compatibility with HbbTV could put on the design of the Presentation API.

Related discussion at: https://lists.w3.org/Archives/Public/public-secondscreen/2015Feb/0102.html

anssiko commented 9 years ago

@matt-hammond-bbc will give us a short presentation at F2F on relevant aspects of HbbTV 2.0 and how they may or may not fit with the work of the Second Screen Presentation WG.

matt-hammond-001 commented 9 years ago

Here is a summary of the behaviour and capabilities of the application launch and communication mechanisms in HbbTV 2.0, with a view to how they relate to the functionality in the presentation API:

HbbTV 2.0 allows another device on the home network to request that the TV launch a URL in the HbbTV engine. This engine is basically a UA with an HbbTV defined profile of HTML5 plus TV specific extensions.

Discovery

Launch:

Resumption:

Communication:

Close/Terminate:

Resumption/Joining:

Summary of compatibility:

matt-hammond-001 commented 9 years ago

Some questions that I think arise from this:

Can there be a mechanism to pass additional parameters to the availability checking and/or session starting process? (issue-81 and issue-9)

Does closure/termination just mean disconnection of the communication link with the 2nd screen presentation? or does it mean the 2nd screen presentation must be terminated? (issue-35)

Could a started or resumed session be temporarily or permanently in a disconnected state (no message communication capability)?

Does it matter if the rejoining process cannot guarantee that you are communicating with the same instance of the same URL being presented on the HbbTV device?

Security: given that the HbbTV device cannot be trusted by the UA and the message communication mechanism is non-TLS Websockets, what should happen for secure origins? (issue-45, issue-63)

matt-hammond-001 commented 9 years ago

Addendum: orgId and appId fields are mandatory in XML AIT.

A UA vendor could register for its own orgId to launch a broadcast-independent app (if the controlling web app does not provide orgId)

matt-hammond-001 commented 9 years ago

Here is the full set of slides giving overview of relevant HbbTV companion features and my assessment from above:

https://myshare.app.box.com/s/rl2joltd6pyu6hx7flbpc1zu91pbptvu

I'll go through a subset of these (to keep within time) during the WG F2F meeting today (19 May 2015)

obeletski commented 9 years ago

Does HbbTV spec define a way to communicate app-endpoint between companion screen and TV app? I understand that we need to pass it to startSession call in the originating UA. Additionally, in the presenting UA we also need to pass it to NavigatorPresentation.getSession() call https://github.com/w3c/presentation-api/issues/34#issuecomment-103532501.

matt-hammond-001 commented 9 years ago

HbbTV does not communicate the app-endpoint. Yes, I agree that it would need to be passed by the web app as part of the process of establishing the session.

The solution for this perhaps can also pass other HbbTV specific parameters - such as appId and orgId

louaybassbouss commented 9 years ago

we published today a new Node.js module hbbtv with feature complete Implementation of HbbTV 2.0 CS on github and npm. Please refer to the Readme for more details about how you can install, use and develop applications using this module. We have also clients for other platforms like Android, iOS and Cordova but these are not public yet.

Since there are currently no HbbTV 2.0 TVs available (first TVs or STBs are expected next years), this module opens the door for early proof-of-concept implementation of Presentation API on top of HbbTV 2.0 CS. We already started with a Presentation API HbbTV polyfill for both controlling and presenting browsing contexts.

@matt-hammond-bbc please let me know if we can do together more experimentation on this topic.

tidoust commented 9 years ago

Hi @louaybassbouss

That's excellent, thanks for sharing! I am interested by the development of a Presentation API HbbTV polyfill as well. I'll get in touch.

louaybassbouss commented 9 years ago

Hi @tidoust

Great happy to work with you on this topic :)

tidoust commented 8 years ago

FYI, thanks to @louaybassbouss' node-hbbtv implementation, I experimented support for HbbTV 2.0 support, or rather support limits, in an updated version of my Presentation API polyfill: https://mediascape.github.io/presentation-api-polyfill/

The polyfill does not attempt to create a communication channel since my goal was to see what an HbbTV 2.0 device would support out of the box without software updates. As noted by @matt-hammond-bbc, athough relatively easy to do since there will be a Websocket server available, such a device would not establish the communication channel on behalf of the receiving application.

louaybassbouss commented 8 years ago

Thx @tidoust. I just published a Cordova plugin that implements the HbbTV 2.0 CS Client features (Discover HbbTV Terminals, Launch HbbTV App and Open App2App WebSocket Channel) on GitHub [1] and npm 2]. these are the features relevant for the Presentation API. A Cordova Demo Application that uses the Plugin is also published on GitHub [3]. The Plugin supports Android for now, iOS is work in progress. You can use the plugin with real HbbTV 2.0 Terminals (expected next year) or with the Node.js hbbtv module [4] started in terminal mode on a PC. Your feedback and comments are welcome.

tidoust commented 7 years ago

For reference, see related discussion at TPAC

markafoltz commented 6 years ago

Bumping this up for consideration at TPAC during rechartering discussions.

Based on discussions with partners, interoperability with HbbTV 2.0 and related, shipped protocols would be an incentive to adopt the Open Screen Protocol (and the APIs it supports). I don't think this is an easy problem to solve, but it would be worth pursuing, and could require API and spec changes to get there.

chrisn commented 6 years ago

Thanks, Mark. We're certainly interested in pursuing this for V2.

markafoltz commented 6 years ago

From https://www.w3.org/2017/11/06-webscreens-minutes.html#x18:

ACTION: @louaybassbouss to investigate how to do HbbTV scheme with parameters, and look into HbbTV privacy aspects

ACTION: @mfoltzgoogle to look into HbbTV communication channel requirements in general