Confirmed users
192
edits
(→Design) |
|||
Line 49: | Line 49: | ||
==Platform Requirements== | ==Platform Requirements== | ||
===Firefox OS Modifications=== | |||
Currently there's a PushService in the parent process. This proposal changes the structure. | |||
== | * A thread will be launched from the parent process (referred to as the 'Services' Thread) | ||
* The Services thread will have two portions running in it to begin with | |||
** channel.jsm - Channel handling code, split out from the current PushService.jsm, that handles the connection and implements a basic API for other code that is in the Services Thread | |||
** push.jsm - Push daemon refactored to utilize the Channel API. PBackground will likely need to be used to have the DOM API call into this thread hanging off the main thread | |||
The Channel API will allow other code running in the Services Thread to hook in via Events and direct Calls: | |||
Events (to register for): | |||
* OnConnect (called anytime the connection is established) | |||
* OnDisconnect (called if the connection is interrupted) | |||
* OnMessage (called when a message is received over the channel for this service) | |||
API Calls: | |||
* Send(payload, service) - Send the payload over the channel. It will end up in the server-side service handling it. (ie. if push.jsm wanted to send a call to the Push service, it would call Send('whatever', 'push') ) | |||
===Cloud Services Channel Service=== | |||
The Cloud Services Channel Service (fondly pronounced '''koos'''-koos) handles the server-side termination of the channel from each device. | |||
===Push Server Modifications=== | |||
The Push server service will need to be modified to work with the Cloud Services Channel Service. | |||
==Code Repository== | ==Code Repository== | ||
Line 59: | Line 80: | ||
==Release Schedule== | ==Release Schedule== | ||
<i>Predicted code delivery dates</i> | <i>Predicted code delivery dates</i> | ||
=QA= | =QA= | ||
==Points of Contact== | ==Points of Contact== |