WebAPI/PresentationAPI: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(To add more use cases)
(To add more use cases for multiple CP to on PP)
Line 17: Line 17:
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: joinSession(URL1, ID2) or joinSession(URL2, ID1) -> [Q] CP: reject this call?
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: joinSession(URL1, ID2) or joinSession(URL2, ID1) -> [Q] CP: reject this call?
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select the same device from list -> [Q] PP: close old page -> PP: restart a new page
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select the same device from list -> [Q] PP: close old page -> PP: restart a new page
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select a different device from list -> PP: nothing -> New-PP in different device: restart a new page -> [Q] Is it possible of CP calling joinSession(URL1,ID1) to PP again?
** [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select a different device from list -> PP: nothing -> New-PP in different device: new page is launched -> [Q] Is it possible of CP calling joinSession(URL1,ID1) to PP again?
 
** ---
** [basic case] -> CP: page is closed gracefully -> [Q] PP: page is closed as well.
** [basic case] -> PP: page is closed gracefully -> [Q] CP: session state from connected to disconnected
** [basic case] -> PP: page is crashed -> [Q] CP: ?


* One CP to multiple PP
* One CP to multiple PP
** CP: requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> CP: requestSession(URL1, ID1) to device 2 -> PP1: is page closed or session state is changed? -> PP2: page is presented.
** CP: requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> CP: requestSession(URL1, ID1) to device 2 -> PP1: is page closed or session state is changed? -> PP2: page is presented.
** CP: requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> CP: requestSession(URL1, ID2) to device 2 -> PP1: nothing changed -> PP2: page is presented.
* Multiple CP to one PP
** [basic case] -> CP in different device: request/joinSession(URL1, ID1) -> PP: reject this new session.
** [FxOS] CP (WebApp A): requestSession(URL1, ID1) to device 1 -> PP1 (WebApp): page is presented -> open another CP (WebApp A) -> Currently FxOS can't create two instances of the same Web App in the same time.
** CP (URL A in tab A): requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> open another CP (URL A in tab B): requestSession(URL1, ID1) to device 2 -> PP2: page is presented
** Based on use case above -> tab1 & tab 2 are all crashed -> open another CP (URL A in tab C): joinSession(URL1, ID1) -> (Q) whether the session from device 1 or device 2 should be resumed?


=== Not Considered Use Cases Yet ===
=== Not Considered Use Cases Yet ===

Revision as of 04:25, 19 January 2015

Goals

Use case

Considered Use Cases on Version landing to FxOS V3.0

(Controlling page will be called CP and presenting page be PP)

  • One CP to one PP
    • CP: requestSession(URL1, ID1) -> CP: there is no devices discovered yet.
    • CP: requestSession(URL1, ID1) -> CP: can't reach to remote device.
    • CP: requestSession(URL1, ID1) -> CP: user cancels the selection from devices list.
    • CP: requestSession(URL1, ID1) -> PP: Reject this request (ex: user choice / low momory / [FxOS] no URL of app manifest is not supported)
    • ---
    • [basic case] CP: requestSession(URL1, ID1) -> CP: user select one device from list -> PP: page is launched -> start to communicate between CP & PP
    • [Q][basic case] -> how to make sure the first call of Send() will not be missed by remote page?
    • ---
    • [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: joinSession(URL1, ID1) -> CP: is automatically bound to previous PP -> PP: session state from disconnected to connected.
    • [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: joinSession(URL1, ID2) or joinSession(URL2, ID1) -> [Q] CP: reject this call?
    • [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select the same device from list -> [Q] PP: close old page -> PP: restart a new page
    • [basic case] -> CP: is crashed -> PP: session state from connected to disconnected -> CP: requestSession(URL1, ID1) -> CP: user select a different device from list -> PP: nothing -> New-PP in different device: new page is launched -> [Q] Is it possible of CP calling joinSession(URL1,ID1) to PP again?
    • ---
    • [basic case] -> CP: page is closed gracefully -> [Q] PP: page is closed as well.
    • [basic case] -> PP: page is closed gracefully -> [Q] CP: session state from connected to disconnected
    • [basic case] -> PP: page is crashed -> [Q] CP: ?
  • One CP to multiple PP
    • CP: requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> CP: requestSession(URL1, ID1) to device 2 -> PP1: is page closed or session state is changed? -> PP2: page is presented.
    • CP: requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> CP: requestSession(URL1, ID2) to device 2 -> PP1: nothing changed -> PP2: page is presented.
  • Multiple CP to one PP
    • [basic case] -> CP in different device: request/joinSession(URL1, ID1) -> PP: reject this new session.
    • [FxOS] CP (WebApp A): requestSession(URL1, ID1) to device 1 -> PP1 (WebApp): page is presented -> open another CP (WebApp A) -> Currently FxOS can't create two instances of the same Web App in the same time.
    • CP (URL A in tab A): requestSession(URL1, ID1) to device 1 -> PP1: page is presented -> open another CP (URL A in tab B): requestSession(URL1, ID1) to device 2 -> PP2: page is presented
    • Based on use case above -> tab1 & tab 2 are all crashed -> open another CP (URL A in tab C): joinSession(URL1, ID1) -> (Q) whether the session from device 1 or device 2 should be resumed?

Not Considered Use Cases Yet

  • One presenting page can accept multiple sessions from controlling pages.
  • (FxOS) The same WebApp can be requested multiple times as multiple instances in presenting side.

Proposal