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

Unified Diff: content/browser/resources/media/new/main.js

Issue 23536020: Adds cache and buffer graphs to the properties pane. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: cleaned up code Created 7 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/resources/media/new/main.js
diff --git a/content/browser/resources/media/new/main.js b/content/browser/resources/media/new/main.js
index 85cdd3aba1fe5442dd2983dd79dde34d466814d3..f0423cf818d18f8c148fe6a12dc654621413c86d 100644
--- a/content/browser/resources/media/new/main.js
+++ b/content/browser/resources/media/new/main.js
@@ -9,6 +9,18 @@ var media = (function() {
'use strict';
var manager_ = null;
+ var eventPhases_ = {};
scherkus (not reviewing) 2013/09/04 23:20:53 can we get some short comments describing what eac
Ty Overby 2013/09/05 21:01:02 Done.
+ var eventTypes_ = {};
+
+ var cacheEntries_ = {};
+ var cacheEntriesByKey_ = {};
+
+ var requestURLs_ = {};
+
+ var media = {
+ BAR_WIDTH: 200,
+ BAR_HEIGHT: 25
+ };
/**
* Users of |media| must call initialize prior to calling other methods.
@@ -23,8 +35,74 @@ var media = (function() {
}
};
- media.onNetUpdate = function(update) {
- // TODO(tyoverby): Implement
+ media.onReceiveConstants = function(constants) {
+ for (var key in constants.eventTypes) {
+ var value = constants.eventTypes[key];
+ eventTypes_[value] = key;
+ }
+
+ for (var key in constants.eventPhases) {
+ var value = constants.eventPhases[key];
+ eventPhases_[value] = key;
+ }
+ };
+
+ media.cacheForUrl = function(url) {
+ return cacheEntriesByKey_[url];
+ };
+
+ media.onNetUpdate = function(updates) {
+ updates.forEach(function(update) {
+ var id = update.source.id;
+ if (!cacheEntries_[id])
+ cacheEntries_[id] = new media.CacheEntry;
+
+ switch (eventPhases_[update.phase] + '.' + eventTypes_[update.type]) {
+ case 'PHASE_BEGIN.DISK_CACHE_ENTRY_IMPL':
scherkus (not reviewing) 2013/09/04 23:20:53 case statements should be indented by 2 more space
Ty Overby 2013/09/05 21:01:02 Done.
+ var key = update.params.key;
+
+ // Merge this source with anything we already know about this key.
+ if (cacheEntriesByKey_[key]) {
+ cacheEntriesByKey_[key].merge(cacheEntries_[id]);
+ cacheEntries_[id] = cacheEntriesByKey_[key];
+ } else {
+ cacheEntriesByKey_[key] = cacheEntries_[id];
+ }
+ cacheEntriesByKey_[key].key = key;
+ break;
+
+ case 'PHASE_BEGIN.SPARSE_READ':
+ cacheEntries_[id].readBytes(update.params.offset,
+ update.params.buff_len);
+ cacheEntries_[id].sparse = true;
+ break;
+
+ case 'PHASE_BEGIN.SPARSE_WRITE':
+ cacheEntries_[id].writeBytes(update.params.offset,
+ update.params.buff_len);
+ cacheEntries_[id].sparse = true;
+ break;
+
+ case 'PHASE_BEGIN.URL_REQUEST_START_JOB':
+ requestURLs_[update.source.id] = update.params.url;
+ break;
+
+ case 'PHASE_NONE.HTTP_TRANSACTION_READ_RESPONSE_HEADERS':
+ // Record the total size of the file if this was a range request.
+ var range = /content-range:\s*bytes\s*\d+-\d+\/(\d+)/i.exec(
+ update.params.headers);
+ var key = requestURLs_[update.source.id];
+ delete requestURLs_[update.source.id];
+ if (range && key) {
+ if (!cacheEntriesByKey_[key]) {
+ cacheEntriesByKey_[key] = new media.CacheEntry;
+ cacheEntriesByKey_[key].key = key;
+ }
+ cacheEntriesByKey_[key].size = range[1];
+ }
+ break;
+ }
+ });
};
media.onRendererTerminated = function(renderId) {
@@ -99,5 +177,6 @@ var media = (function() {
}
};
+ chrome.send('getEverything');
return media;
}());

Powered by Google App Engine
This is Rietveld 408576698