Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: chrome/browser/resources/quota_internals/event_handler.js

Issue 7084024: Add chrome://quota-internals/ (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix clang compile error Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/resources/quota_internals/message_dispatcher.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // require cr.js 5 // require cr.js
6 // require cr/event_target.js 6 // require cr/event_target.js
7 // require cr/ui.js 7 // require cr/ui.js
8 // require cr/ui/tabs.js 8 // require cr/ui/tabs.js
9 // require cr/ui/tree.js 9 // require cr/ui/tree.js
10 // require cr/util.js 10 // require cr/util.js
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 * @param {?number} value Number of milliseconds since 119 * @param {?number} value Number of milliseconds since
120 * UNIX epoch time (0:00, Jan 1, 1970, UTC). 120 * UNIX epoch time (0:00, Jan 1, 1970, UTC).
121 * @return {string} Formatted text of date or 'N/A'. 121 * @return {string} Formatted text of date or 'N/A'.
122 * @private 122 * @private
123 */ 123 */
124 function dateToText(value) { 124 function dateToText(value) {
125 var result = checkIfAvailable_(value); 125 var result = checkIfAvailable_(value);
126 if (result) 126 if (result)
127 return result; 127 return result;
128 128
129 var lastAccessTime = new Date(value); 129 var time = new Date(value);
130 var now = new Date(); 130 var now = new Date();
131 var delta = Date.now() - value; 131 var delta = Date.now() - value;
132 132
133 var SECOND = 1000; 133 var SECOND = 1000;
134 var MINUTE = 60 * SECOND; 134 var MINUTE = 60 * SECOND;
135 var HOUR = 60 * MINUTE; 135 var HOUR = 60 * MINUTE;
136 var DAY = 23 * HOUR; 136 var DAY = 23 * HOUR;
137 var WEEK = 7 * DAY; 137 var WEEK = 7 * DAY;
138 138
139 var SHOW_SECOND = 5 * MINUTE; 139 var SHOW_SECOND = 5 * MINUTE;
140 var SHOW_MINUTE = 5 * HOUR; 140 var SHOW_MINUTE = 5 * HOUR;
141 var SHOW_HOUR = 3 * DAY; 141 var SHOW_HOUR = 3 * DAY;
142 var SHOW_DAY = 2 * WEEK; 142 var SHOW_DAY = 2 * WEEK;
143 var SHOW_WEEK = 3 * 30 * DAY; 143 var SHOW_WEEK = 3 * 30 * DAY;
144 144
145 if (delta < 0) { 145 if (delta < 0) {
146 result = 'access from future '; 146 result = 'access from future ';
147 } else if (delta < SHOW_SECOND) { 147 } else if (delta < SHOW_SECOND) {
148 result = Math.ceil(delta / SECOND) + ' sec ago '; 148 result = Math.ceil(delta / SECOND) + ' sec ago ';
149 } else if (delta < SHOW_MINUTE) { 149 } else if (delta < SHOW_MINUTE) {
150 result = Math.ceil(delta / MINUTE) + ' min ago '; 150 result = Math.ceil(delta / MINUTE) + ' min ago ';
151 } else if (delta < SHOW_HOUR) { 151 } else if (delta < SHOW_HOUR) {
152 result = Math.ceil(delta / HOUR) + ' hr ago '; 152 result = Math.ceil(delta / HOUR) + ' hr ago ';
153 } else if (delta < SHOW_WEEK) { 153 } else if (delta < SHOW_WEEK) {
154 result = Math.ceil(delta / DAY) + ' day ago '; 154 result = Math.ceil(delta / DAY) + ' day ago ';
155 } 155 }
156 156
157 result += '(' + lastAccessTime.toString() + ')'; 157 result += '(' + time.toString() + ')';
158 return result; 158 return result;
159 } 159 }
160 160
161 /** 161 /**
162 * Available disk space. 162 * Available disk space.
163 * @type {number|undefined} 163 * @type {number|undefined}
164 */ 164 */
165 var availableSpace = undefined; 165 var availableSpace = undefined;
166 166
167 /** 167 /**
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 */ 266 */
267 function handleAvailableSpace(event) { 267 function handleAvailableSpace(event) {
268 /** 268 /**
269 * @type {string} 269 * @type {string}
270 */ 270 */
271 availableSpace = event.detail; 271 availableSpace = event.detail;
272 $('diskspace-entry').innerHTML = numBytesToText_(availableSpace); 272 $('diskspace-entry').innerHTML = numBytesToText_(availableSpace);
273 }; 273 };
274 274
275 /** 275 /**
276 * Event Handler for |cr.quota.onGlobalDataUpdated|. 276 * Event Handler for |cr.quota.onGlobalInfoUpdated|.
277 * |event.detail| contains a record which has: 277 * |event.detail| contains a record which has:
278 * |type|: 278 * |type|:
279 * Storage type, that is either 'temporary' or 'persistent'. 279 * Storage type, that is either 'temporary' or 'persistent'.
280 * |usage|: 280 * |usage|:
281 * Total storage usage of all hosts. 281 * Total storage usage of all hosts.
282 * |unlimitedUsage|: 282 * |unlimitedUsage|:
283 * Total storage usage of unlimited-quota origins. 283 * Total storage usage of unlimited-quota origins.
284 * |quota|: 284 * |quota|:
285 * Total quota of the storage. 285 * Total quota of the storage.
286 * 286 *
287 * |usage|, |unlimitedUsage| and |quota| can be missing, 287 * |usage|, |unlimitedUsage| and |quota| can be missing,
288 * and some additional fields can be included. 288 * and some additional fields can be included.
289 * @param {CustomEvent} event GlobalDataUpdated event. 289 * @param {CustomEvent} event GlobalInfoUpdated event.
290 */ 290 */
291 function handleGlobalData(event) { 291 function handleGlobalInfo(event) {
292 /** 292 /**
293 * @type {{ 293 * @type {{
294 * type: {!string}, 294 * type: {!string},
295 * usage: {?number}, 295 * usage: {?number},
296 * unlimitedUsage: {?number} 296 * unlimitedUsage: {?number}
297 * quota: {?string} 297 * quota: {?string}
298 * }} 298 * }}
299 */ 299 */
300 var data = event.detail; 300 var data = event.detail;
301 var storageObject = getStorageObject(data.type); 301 var storageObject = getStorageObject(data.type);
302 copyAttributes_(data, storageObject.detail.payload); 302 copyAttributes_(data, storageObject.detail.payload);
303 storageObject.reveal(); 303 storageObject.reveal();
304 if (getTreeViewObject().selectedItem == storageObject)
305 updateDescription();
306
304 }; 307 };
305 308
306 /** 309 /**
307 * Event Handler for |cr.quota.onHostDataUpdated|. 310 * Event Handler for |cr.quota.onPerHostInfoUpdated|.
308 * |event.detail| contains records which have: 311 * |event.detail| contains records which have:
309 * |host|: 312 * |host|:
310 * Hostname of the entry. (e.g. 'example.com') 313 * Hostname of the entry. (e.g. 'example.com')
311 * |type|: 314 * |type|:
312 * Storage type. 'temporary' or 'persistent' 315 * Storage type. 'temporary' or 'persistent'
313 * |usage|: 316 * |usage|:
314 * Total storage usage of the host. 317 * Total storage usage of the host.
315 * |quota|: 318 * |quota|:
316 * Per-host quota. 319 * Per-host quota.
317 * 320 *
318 * |usage| and |quota| can be missing, 321 * |usage| and |quota| can be missing,
319 * and some additional fields can be included. 322 * and some additional fields can be included.
320 * @param {CustomEvent} event HostDataUpdated event. 323 * @param {CustomEvent} event PerHostInfoUpdated event.
321 */ 324 */
322 function handleHostData(event) { 325 function handlePerHostInfo(event) {
323 /** 326 /**
324 * @type {Array<{ 327 * @type {Array<{
325 * host: {!string}, 328 * host: {!string},
326 * type: {!string}, 329 * type: {!string},
327 * usage: {?number}, 330 * usage: {?number},
328 * quota: {?number} 331 * quota: {?number}
329 * }} 332 * }}
330 */ 333 */
331 var dataArray = event.detail; 334 var dataArray = event.detail;
332 335
333 for (var i = 0; i < dataArray.length; ++i) { 336 for (var i = 0; i < dataArray.length; ++i) {
334 var data = dataArray[i]; 337 var data = dataArray[i];
335 var hostObject = getHostObject(data.type, data.host); 338 var hostObject = getHostObject(data.type, data.host);
336 copyAttributes_(data, hostObject.detail.payload); 339 copyAttributes_(data, hostObject.detail.payload);
337 hostObject.reveal(); 340 hostObject.reveal();
341 if (getTreeViewObject().selectedItem == hostObject)
342 updateDescription();
343
338 } 344 }
339 } 345 }
340 346
341 /** 347 /**
342 * Event Handler for |cr.quota.onOriginDataUpdated|. 348 * Event Handler for |cr.quota.onPerOriginInfoUpdated|.
343 * |event.detail| contains records which have: 349 * |event.detail| contains records which have:
344 * |origin|: 350 * |origin|:
345 * Origin URL of the entry. 351 * Origin URL of the entry.
346 * |type|: 352 * |type|:
347 * Storage type of the entry. 'temporary' or 'persistent'. 353 * Storage type of the entry. 'temporary' or 'persistent'.
348 * |host|: 354 * |host|:
349 * Hostname of the entry. 355 * Hostname of the entry.
350 * |inUse|: 356 * |inUse|:
351 * true if the origin is in use. 357 * true if the origin is in use.
352 * |usedCount|: 358 * |usedCount|:
353 * Used count of the storage from the origin. 359 * Used count of the storage from the origin.
354 * |lastAccessTime|: 360 * |lastAccessTime|:
355 * Last storage access time from the origin. 361 * Last storage access time from the origin.
356 * Number of milliseconds since UNIX epoch (Jan 1, 1970, 0:00:00 UTC). 362 * Number of milliseconds since UNIX epoch (Jan 1, 1970, 0:00:00 UTC).
363 * |lastModifiedTime|:
364 * Last modified time of the storage from the origin.
365 * Number of milliseconds since UNIX epoch.
357 * 366 *
358 * |inUse|, |usedCount| and |lastAccessTime| can be missing, 367 * |inUse|, |usedCount|, |lastAccessTime| and |lastModifiedTime| can be missing,
359 * and some additional fields can be included. 368 * and some additional fields can be included.
360 * @param {CustomEvent} event OriginDataUpdated event. 369 * @param {CustomEvent} event PerOriginInfoUpdated event.
361 */ 370 */
362 function handleOriginData(event) { 371 function handlePerOriginInfo(event) {
363 /** 372 /**
364 * @type {Array<{ 373 * @type {Array<{
365 * origin: {!string}, 374 * origin: {!string},
366 * type: {!string}, 375 * type: {!string},
367 * host: {!string}, 376 * host: {!string},
368 * inUse: {?boolean}, 377 * inUse: {?boolean},
369 * usedCount: {?number}, 378 * usedCount: {?number},
370 * lastAccessTime: {?number} 379 * lastAccessTime: {?number}
380 * lastModifiedTime: {?number}
371 * }>} 381 * }>}
372 */ 382 */
373 var dataArray = event.detail; 383 var dataArray = event.detail;
374 384
375 for (var i = 0; i < dataArray.length; ++i) { 385 for (var i = 0; i < dataArray.length; ++i) {
376 var data = dataArray[i]; 386 var data = dataArray[i];
377 var originObject = getOriginObject(data.type, data.host, data.origin); 387 var originObject = getOriginObject(data.type, data.host, data.origin);
378 copyAttributes_(data, originObject.detail.payload); 388 copyAttributes_(data, originObject.detail.payload);
379 originObject.reveal(); 389 originObject.reveal();
390 if (getTreeViewObject().selectedItem == originObject)
391 updateDescription();
380 } 392 }
381 } 393 }
382 394
383 /** 395 /**
384 * Event Handler for |cr.quota.onStatisticsUpdated|. 396 * Event Handler for |cr.quota.onStatisticsUpdated|.
385 * |event.detail| contains misc statistics data as dictionary. 397 * |event.detail| contains misc statistics data as dictionary.
386 * @param {CustomEvent} event StatisticsUpdated event. 398 * @param {CustomEvent} event StatisticsUpdated event.
387 */ 399 */
388 function handleStatistics(event) { 400 function handleStatistics(event) {
389 /** 401 /**
(...skipping 28 matching lines...) Expand all
418 var keyAndLabel = [['type', 'Storage Type'], 430 var keyAndLabel = [['type', 'Storage Type'],
419 ['host', 'Host Name'], 431 ['host', 'Host Name'],
420 ['origin', 'Origin URL'], 432 ['origin', 'Origin URL'],
421 ['usage', 'Total Storage Usage', numBytesToText_], 433 ['usage', 'Total Storage Usage', numBytesToText_],
422 ['unlimitedUsage', 'Usage of Unlimited Origins', 434 ['unlimitedUsage', 'Usage of Unlimited Origins',
423 numBytesToText_], 435 numBytesToText_],
424 ['quota', 'Quota', numBytesToText_], 436 ['quota', 'Quota', numBytesToText_],
425 ['inUse', 'Origin is in use?'], 437 ['inUse', 'Origin is in use?'],
426 ['usedCount', 'Used count'], 438 ['usedCount', 'Used count'],
427 ['lastAccessTime', 'Last Access Time', 439 ['lastAccessTime', 'Last Access Time',
440 dateToText],
441 ['lastModifiedTime', 'Last Modified Time',
428 dateToText] 442 dateToText]
429 ]; 443 ];
430 for (var i = 0; i < keyAndLabel.length; ++i) { 444 for (var i = 0; i < keyAndLabel.length; ++i) {
431 var key = keyAndLabel[i][0]; 445 var key = keyAndLabel[i][0];
432 var label = keyAndLabel[i][1]; 446 var label = keyAndLabel[i][1];
433 var entry = item.detail.payload[key]; 447 var entry = item.detail.payload[key];
434 if (entry === undefined) 448 if (entry === undefined)
435 continue; 449 continue;
436 450
437 var normalize = keyAndLabel[i][2] || stringToText_; 451 var normalize = keyAndLabel[i][2] || stringToText_;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 separator + 515 separator +
502 JSON.stringify(dumpStatisticsToObj(), null, 2); 516 JSON.stringify(dumpStatisticsToObj(), null, 2);
503 } 517 }
504 518
505 function onLoad() { 519 function onLoad() {
506 cr.ui.decorate('tabbox', cr.ui.TabBox); 520 cr.ui.decorate('tabbox', cr.ui.TabBox);
507 localize_(document); 521 localize_(document);
508 522
509 cr.quota.onAvailableSpaceUpdated.addEventListener('update', 523 cr.quota.onAvailableSpaceUpdated.addEventListener('update',
510 handleAvailableSpace); 524 handleAvailableSpace);
511 cr.quota.onGlobalDataUpdated.addEventListener('update', handleGlobalData); 525 cr.quota.onGlobalInfoUpdated.addEventListener('update', handleGlobalInfo);
512 cr.quota.onHostDataUpdated.addEventListener('update', handleHostData); 526 cr.quota.onPerHostInfoUpdated.addEventListener('update', handlePerHostInfo);
513 cr.quota.onOriginDataUpdated.addEventListener('update', handleOriginData); 527 cr.quota.onPerOriginInfoUpdated.addEventListener('update',
528 handlePerOriginInfo);
514 cr.quota.onStatisticsUpdated.addEventListener('update', handleStatistics); 529 cr.quota.onStatisticsUpdated.addEventListener('update', handleStatistics);
515 cr.quota.requestData(); 530 cr.quota.requestInfo();
516 531
517 $('refresh-button').addEventListener('click', cr.quota.requestData, false); 532 $('refresh-button').addEventListener('click', cr.quota.requestInfo, false);
518 $('dump-button').addEventListener('click', dump, false); 533 $('dump-button').addEventListener('click', dump, false);
519 } 534 }
520 535
521 cr.doc.addEventListener('DOMContentLoaded', onLoad, false); 536 cr.doc.addEventListener('DOMContentLoaded', onLoad, false);
522 })(); 537 })();
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/quota_internals/message_dispatcher.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698