WebAPI/PresentationAPI:CoreService: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(Created page with "== Introduction == The page explains the implementation detail of core service. == Architecture == * PresentationService * PresentationSessionInfo * PresentationSessionTransp...")
 
(add some description of classes)
Line 4: Line 4:
== Architecture ==
== Architecture ==
* PresentationService
* PresentationService
A mediator among WebAPI classes, IPC and |PresentationSessionInfo|.
Live in Chrome Process.
* PresentationSessionInfo
* PresentationSessionInfo
Maintain grotty details around session transports, receiver page and connection state.
Session infos use the established control channel to negotiate the SDP of session transport and create a transport builder to do the transport establishment.
Two subclasses, |PresentationControllingInfo| and |PresentationPresentingInfo|, stands for the controller and presenter. Presenting info will establish the transport after the receiver's page ready.
Live in Chrome Process.
* PresentationSessionTransport
* PresentationSessionTransport
Maintain the underlying transport.
We have TCP transport now and work on RTCDataChannel transport.
TCP transport lives in Chrome process.
RTCDataChannel lives with the DOM. That is, live in content process in e10s mode.
* PresentationIPCService
* PresentationIPCService
* PresentationIPCSessionInfo
* PresentationIPCSessionInfo

Revision as of 09:32, 24 March 2016

Introduction

The page explains the implementation detail of core service.

Architecture

  • PresentationService

A mediator among WebAPI classes, IPC and |PresentationSessionInfo|.

Live in Chrome Process.

  • PresentationSessionInfo

Maintain grotty details around session transports, receiver page and connection state.

Session infos use the established control channel to negotiate the SDP of session transport and create a transport builder to do the transport establishment.

Two subclasses, |PresentationControllingInfo| and |PresentationPresentingInfo|, stands for the controller and presenter. Presenting info will establish the transport after the receiver's page ready.

Live in Chrome Process.

  • PresentationSessionTransport

Maintain the underlying transport. We have TCP transport now and work on RTCDataChannel transport.

TCP transport lives in Chrome process. RTCDataChannel lives with the DOM. That is, live in content process in e10s mode.

  • PresentationIPCService
  • PresentationIPCSessionInfo

Call Flow Example

Controller Transport Establishment

Establishing OOP DataChannel Transport

Receiver Establishment