Index: chrome/browser/resources/media_internals/cache_entry.js |
diff --git a/chrome/browser/resources/media_internals/cache_entry.js b/chrome/browser/resources/media_internals/cache_entry.js |
index 60deab4cfe29a91628d454fd9895f01746a647e6..275a8c74a5021e9085ded7c53a658394e43f9746 100644 |
--- a/chrome/browser/resources/media_internals/cache_entry.js |
+++ b/chrome/browser/resources/media_internals/cache_entry.js |
@@ -3,12 +3,7 @@ |
// found in the LICENSE file. |
cr.define('media', function() { |
- |
- /** |
- * The width and height of a CacheEntry canvas in pixels. |
- */ |
- var CANVAS_WIDTH = 500; |
- var CANVAS_HEIGHT = 31; |
+ 'use strict'; |
/** |
* This class represents a file cached by net. |
@@ -50,19 +45,25 @@ cr.define('media', function() { |
clearControl.textContent = '(clear entry)'; |
controls.appendChild(clearControl); |
- // The canvas upon which to draw the cached sections of a file. |
- this.canvas_ = document.createElement('canvas'); |
- this.canvas_.width = CANVAS_WIDTH; |
- this.canvas_.height = CANVAS_HEIGHT; |
- summary.appendChild(this.canvas_); |
- |
this.details_.appendChild(summary); |
+ // The canvas for drawing cache writes. |
+ this.writeCanvas = document.createElement('canvas'); |
+ this.writeCanvas.width = media.BAR_WIDTH; |
+ this.writeCanvas.height = media.BAR_HEIGHT; |
+ this.details_.appendChild(this.writeCanvas); |
+ |
+ // The canvas for drawing cache reads. |
+ this.readCanvas = document.createElement('canvas'); |
+ this.readCanvas.width = media.BAR_WIDTH; |
+ this.readCanvas.height = media.BAR_HEIGHT; |
+ this.details_.appendChild(this.readCanvas); |
+ |
// A tabular representation of the data in the above canvas. |
this.detailTable_ = document.createElement('table'); |
this.detailTable_.className = 'cache-table'; |
this.details_.appendChild(this.detailTable_); |
- }; |
+ } |
CacheEntry.prototype = { |
/** |
@@ -115,57 +116,59 @@ cr.define('media', function() { |
}, |
/** |
- * Redraw this.canvas_. |
- * It should consist of two horizontal bars with highlighted sections to |
- * represent which parts of a file have been read from (top) and written to |
- * (bottom) the cache. |
- * e.g. |xxxxxx----------x| |
- * |-----xxxxx-------| |
+ * Helper for drawCacheReadsToCanvas() and drawCacheWritesToCanvas(). |
+ * |
+ * Accepts the entries to draw, a canvas fill style, and the canvas to |
+ * draw on. |
*/ |
- generateCanvas: function() { |
- var context = this.canvas_.getContext('2d'); |
- context.textAlign = 'center'; |
- context.textBaseline = 'middle'; |
+ drawCacheEntriesToCanvas: function(entries, fillStyle, canvas) { |
+ // Don't bother drawing anything if we don't know the total size. |
+ if (!this.size) { |
+ return; |
+ } |
+ |
+ var width = canvas.width; |
+ var height = canvas.height; |
+ var context = canvas.getContext('2d'); |
+ var fileSize = this.size; |
context.fillStyle = '#aaa'; |
- context.fillRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT); |
- |
- if (this.size) { |
- var fileSize = this.size; |
- drawRange = function(start, end, top) { |
- var left = start / fileSize * CANVAS_WIDTH; |
- var right = end / fileSize * CANVAS_WIDTH; |
- context.fillRect(left, top, right - left, top + CANVAS_HEIGHT / 2); |
- }; |
- |
- context.fillStyle = '#0a0'; |
- this.read_.map(function(start, end) { |
- drawRange(start, end, 0); |
- }); |
- |
- context.fillStyle = '#00a'; |
- this.written_.map(function(start, end) { |
- drawRange(start, end, CANVAS_HEIGHT / 2); |
- }); |
- |
- // Overlay a description of each bar. |
- context.fillStyle = '#fff'; |
- context.fillText('Read from cache.', CANVAS_WIDTH / 2, |
- CANVAS_HEIGHT / 4 - 0.5); |
- context.fillText('Written to cache.', CANVAS_WIDTH / 2, |
- CANVAS_HEIGHT * 3 / 4 + 0.5); |
- |
- // Add a 1px separator line. |
- context.moveTo(0, CANVAS_HEIGHT / 2); |
- context.lineTo(CANVAS_WIDTH, CANVAS_HEIGHT / 2); |
- context.strokeStyle = '#fff'; |
- context.stroke(); |
- } else { |
- // We can't draw bars if we don't know how big the file is. |
- context.fillStyle = '#fff'; |
- context.fillText('Unknown file size. See details below.', |
- CANVAS_WIDTH / 2, CANVAS_HEIGHT / 2); |
+ context.fillRect(0, 0, width, height); |
+ |
+ function drawRange(start, end) { |
+ var left = start / fileSize * width; |
+ var right = end / fileSize * width; |
+ context.fillRect(left, 0, right - left, height); |
} |
+ |
+ context.fillStyle = fillStyle; |
+ entries.map(function(start, end) { |
+ drawRange(start, end); |
+ }); |
+ }, |
+ |
+ /** |
+ * Draw cache writes to the given canvas. |
+ * |
+ * It should consist of a horizontal bar with highlighted sections to |
+ * represent which parts of a file have been written to the cache. |
+ * |
+ * e.g. |xxxxxx----------x| |
+ */ |
+ drawCacheWritesToCanvas: function(canvas) { |
+ this.drawCacheEntriesToCanvas(this.written_, '#00a', canvas); |
+ }, |
+ |
+ /** |
+ * Draw cache reads to the given canvas. |
+ * |
+ * It should consist of a horizontal bar with highlighted sections to |
+ * represent which parts of a file have been read from the cache. |
+ * |
+ * e.g. |xxxxxx----------x| |
+ */ |
+ drawCacheReadsToCanvas: function(canvas) { |
+ this.drawCacheEntriesToCanvas(this.read_, '#0a0', canvas); |
}, |
/** |
@@ -173,12 +176,6 @@ cr.define('media', function() { |
* this file. |
*/ |
generateDetails: function() { |
- function makeElement(type, content) { |
- var element = document.createElement(type); |
- element.textContent = content; |
- return element; |
- }; |
- |
this.details_.id = this.key; |
this.summaryText_.textContent = this.key || 'Unknown File'; |
@@ -191,8 +188,8 @@ cr.define('media', function() { |
this.detailTable_.appendChild(body); |
var headerRow = document.createElement('tr'); |
- headerRow.appendChild(makeElement('th', 'Read From Cache')); |
- headerRow.appendChild(makeElement('th', 'Written To Cache')); |
+ headerRow.appendChild(media.makeElement('th', 'Read From Cache')); |
+ headerRow.appendChild(media.makeElement('th', 'Written To Cache')); |
header.appendChild(headerRow); |
var footerRow = document.createElement('tr'); |
@@ -212,12 +209,13 @@ cr.define('media', function() { |
var length = Math.max(read.length, written.length); |
for (var i = 0; i < length; i++) { |
var row = document.createElement('tr'); |
- row.appendChild(makeElement('td', read[i] || '')); |
- row.appendChild(makeElement('td', written[i] || '')); |
+ row.appendChild(media.makeElement('td', read[i] || '')); |
+ row.appendChild(media.makeElement('td', written[i] || '')); |
body.appendChild(row); |
} |
- this.generateCanvas(); |
+ this.drawCacheWritesToCanvas(this.writeCanvas); |
+ this.drawCacheReadsToCanvas(this.readCanvas); |
}, |
/** |