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