Bug 966244 - Alarms are not updated after clearStats. r=gene, r=jshih

This commit is contained in:
Albert Crespell 2014-02-11 12:35:28 +01:00
Родитель fd4975a3c5
Коммит ae10708769
2 изменённых файлов: 37 добавлений и 2 удалений

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

@ -576,7 +576,7 @@ NetworkStatsDB.prototype = {
},
clearInterfaceStats: function clearInterfaceStats(aNetwork, aResultCb) {
let network = [aNetwork.id, aNetwork.type];
let network = [aNetwork.network.id, aNetwork.network.type];
let self = this;
// Clear and save an empty sample to keep sync with system counters
@ -609,7 +609,7 @@ NetworkStatsDB.prototype = {
self._saveStats(aTxn, aStore, sample);
}
};
}, aResultCb);
}, this._resetAlarms.bind(this, aNetwork.networkId, aResultCb));
},
clearStats: function clearStats(aNetworks, aResultCb) {
@ -863,6 +863,7 @@ NetworkStatsDB.prototype = {
let record = { networkId: aAlarm.networkId,
absoluteThreshold: aAlarm.absoluteThreshold,
relativeThreshold: aAlarm.relativeThreshold,
startTime: aAlarm.startTime,
data: aAlarm.data,
manifestURL: aAlarm.manifestURL,
pageURL: aAlarm.pageURL };
@ -878,6 +879,7 @@ NetworkStatsDB.prototype = {
let alarm = { networkId: aRecord.networkId,
absoluteThreshold: aRecord.absoluteThreshold,
relativeThreshold: aRecord.relativeThreshold,
startTime: aRecord.startTime,
data: aRecord.data,
manifestURL: aRecord.manifestURL,
pageURL: aRecord.pageURL };
@ -1004,5 +1006,29 @@ NetworkStatsDB.prototype = {
cursor.continue();
}
}, aResultCb);
},
_resetAlarms: function _resetAlarms(aNetworkId, aResultCb) {
this.dbNewTxn(ALARMS_STORE_NAME, "readwrite", function(txn, store) {
if (DEBUG) {
debug("Reset alarms for network " + aNetworkId);
}
let lowerFilter = [aNetworkId, 0];
let upperFilter = [aNetworkId, ""];
let range = IDBKeyRange.bound(lowerFilter, upperFilter);
store.index("alarm").openCursor(range).onsuccess = function onsuccess(event) {
let cursor = event.target.result;
if (cursor) {
if (cursor.value.startTime) {
cursor.value.relativeThreshold = cursor.value.threshold;
cursor.update(cursor.value);
}
cursor.continue();
return;
}
};
}, aResultCb);
}
};

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

@ -465,7 +465,9 @@ this.NetworkStatsService = {
return;
}
network = {network: network, networkId: aNetId};
self._db.clearInterfaceStats(network, function onDBCleared(aError, aResult) {
self._updateCurrentAlarm(aNetId);
mm.sendAsyncMessage("NetworkStats:Clear:Return",
{ id: msg.id, error: aError, result: aResult });
});
@ -482,7 +484,14 @@ this.NetworkStatsService = {
}
let networks = aResult;
networks.forEach(function(network, index) {
networks[index] = {network: network, networkId: self.getNetworkId(network.id, network.type)};
}, self);
self._db.clearStats(networks, function onDBCleared(aError, aResult) {
networks.forEach(function(network, index) {
self._updateCurrentAlarm(network.networkId);
}, self);
mm.sendAsyncMessage("NetworkStats:ClearAll:Return",
{ id: msg.id, error: aError, result: aResult });
});