Bug 777207 - Alarm API - AlarmService should use "activities" or "system messages", or not broadcast information to all content processes. r=cjones

This commit is contained in:
Gene Lian 2012-07-26 09:59:20 +08:00
Родитель 13dd383c9a
Коммит cbae0dbddc
1 изменённых файлов: 23 добавлений и 19 удалений

Просмотреть файл

@ -75,16 +75,17 @@ let AlarmService = {
receiveMessage: function receiveMessage(aMessage) { receiveMessage: function receiveMessage(aMessage) {
debug("receiveMessage(): " + aMessage.name); debug("receiveMessage(): " + aMessage.name);
let mm = aMessage.target.QueryInterface(Ci.nsIFrameMessageManager);
let json = aMessage.json; let json = aMessage.json;
switch (aMessage.name) { switch (aMessage.name) {
case "AlarmsManager:GetAll": case "AlarmsManager:GetAll":
this._db.getAll( this._db.getAll(
function getAllSuccessCb(aAlarms) { function getAllSuccessCb(aAlarms) {
debug("Callback after getting alarms from database: " + JSON.stringify(aAlarms)); debug("Callback after getting alarms from database: " + JSON.stringify(aAlarms));
this._sendAsyncMessage("GetAll:Return:OK", json.requestId, aAlarms); this._sendAsyncMessage(mm, "GetAll", true, json.requestId, aAlarms);
}.bind(this), }.bind(this),
function getAllErrorCb(aErrorMsg) { function getAllErrorCb(aErrorMsg) {
this._sendAsyncMessage("GetAll:Return:KO", json.requestId, aErrorMsg); this._sendAsyncMessage(mm, "GetAll", false, json.requestId, aErrorMsg);
}.bind(this) }.bind(this)
); );
break; break;
@ -110,7 +111,7 @@ let AlarmService = {
if (newAlarmTime <= Date.now()) { if (newAlarmTime <= Date.now()) {
debug("Adding a alarm that has past time. Don't set it in system."); debug("Adding a alarm that has past time. Don't set it in system.");
this._debugCurrentAlarm(); this._debugCurrentAlarm();
this._sendAsyncMessage("Add:Return:OK", json.requestId, aNewId); this._sendAsyncMessage(mm, "Add", true, json.requestId, aNewId);
return; return;
} }
@ -118,7 +119,7 @@ let AlarmService = {
if (this._currentAlarm == null) { if (this._currentAlarm == null) {
this._currentAlarm = newAlarm; this._currentAlarm = newAlarm;
this._debugCurrentAlarm(); this._debugCurrentAlarm();
this._sendAsyncMessage("Add:Return:OK", json.requestId, aNewId); this._sendAsyncMessage(mm, "Add", true, json.requestId, aNewId);
return; return;
} }
@ -130,7 +131,7 @@ let AlarmService = {
alarmQueue.unshift(this._currentAlarm); alarmQueue.unshift(this._currentAlarm);
this._currentAlarm = newAlarm; this._currentAlarm = newAlarm;
this._debugCurrentAlarm(); this._debugCurrentAlarm();
this._sendAsyncMessage("Add:Return:OK", json.requestId, aNewId); this._sendAsyncMessage(mm, "Add", true, json.requestId, aNewId);
return; return;
} }
@ -138,10 +139,10 @@ let AlarmService = {
alarmQueue.push(newAlarm); alarmQueue.push(newAlarm);
alarmQueue.sort(this._sortAlarmByTimeStamps.bind(this)); alarmQueue.sort(this._sortAlarmByTimeStamps.bind(this));
this._debugCurrentAlarm(); this._debugCurrentAlarm();
this._sendAsyncMessage("Add:Return:OK", json.requestId, aNewId); this._sendAsyncMessage(mm, "Add", true, json.requestId, aNewId);
}.bind(this), }.bind(this),
function addErrorCb(aErrorMsg) { function addErrorCb(aErrorMsg) {
this._sendAsyncMessage("Add:Return:KO", json.requestId, aErrorMsg); this._sendAsyncMessage(mm, "Add", false, json.requestId, aErrorMsg);
}.bind(this) }.bind(this)
); );
break; break;
@ -195,23 +196,27 @@ let AlarmService = {
} }
}, },
_sendAsyncMessage: function _sendAsyncMessage(aMessageName, aRequestId, aData) { _sendAsyncMessage: function _sendAsyncMessage(aMessageManager, aMessageName, aSuccess, aRequestId, aData) {
debug("_sendAsyncMessage()"); debug("_sendAsyncMessage()");
if (!aMessageManager) {
debug("Invalid message manager: null");
throw Components.results.NS_ERROR_FAILURE;
}
let json = null; let json = null;
switch (aMessageName) switch (aMessageName)
{ {
case "Add:Return:OK": case "Add":
json = { requestId: aRequestId, id: aData }; json = aSuccess ?
{ requestId: aRequestId, id: aData } :
{ requestId: aRequestId, errorMsg: aData };
break; break;
case "GetAll:Return:OK": case "GetAll":
json = { requestId: aRequestId, alarms: aData }; json = aSuccess ?
break; { requestId: aRequestId, alarms: aData } :
{ requestId: aRequestId, errorMsg: aData };
case "Add:Return:KO":
case "GetAll:Return:KO":
json = { requestId: aRequestId, errorMsg: aData };
break; break;
default: default:
@ -219,8 +224,7 @@ let AlarmService = {
break; break;
} }
if (aMessageName && json) aMessageManager.sendAsyncMessage("AlarmsManager:" + aMessageName + ":Return:" + (aSuccess ? "OK" : "KO"), json);
ppmm.sendAsyncMessage("AlarmsManager:" + aMessageName, json);
}, },
_onAlarmFired: function _onAlarmFired() { _onAlarmFired: function _onAlarmFired() {