Bug 1285173 - Netmonitor perf stats: whenDataAvailable should wait for a nonempty request list r=Honza

MozReview-Commit-ID: F4yi7vUdXsM

--HG--
extra : rebase_source : fc0b41c111a7793a51b212a9c327ba6e4cf1bbf4
This commit is contained in:
Jarda Snajdr 2016-11-11 16:06:29 +01:00
Родитель fadc330a3e
Коммит 3ac82a47a4
1 изменённых файлов: 5 добавлений и 4 удалений

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

@ -232,7 +232,7 @@ var NetMonitorView = {
// • The response content size and request total time are necessary for
// populating the statistics view.
// • The response mime type is used for categorization.
yield whenDataAvailable(requestsView.attachments, [
yield whenDataAvailable(requestsView, [
"responseHeaders", "status", "contentSize", "mimeType", "totalTime"
]);
} catch (ex) {
@ -1189,18 +1189,19 @@ var $all = (selector, target = document) => target.querySelectorAll(selector);
* Makes sure certain properties are available on all objects in a data store.
*
* @param array dataStore
* A list of objects for which to check the availability of properties.
* The request view object from which to fetch the item list.
* @param array mandatoryFields
* A list of strings representing properties of objects in dataStore.
* @return object
* A promise resolved when all objects in dataStore contain the
* properties defined in mandatoryFields.
*/
function whenDataAvailable(dataStore, mandatoryFields) {
function whenDataAvailable(requestsView, mandatoryFields) {
let deferred = promise.defer();
let interval = setInterval(() => {
if (dataStore.every(item => {
const { attachments } = requestsView;
if (attachments.length > 0 && attachments.every(item => {
return mandatoryFields.every(field => field in item);
})) {
clearInterval(interval);