| Index: chrome/browser/resources/media_internals/cache_entry.js
|
| ===================================================================
|
| --- chrome/browser/resources/media_internals/cache_entry.js (revision 179909)
|
| +++ chrome/browser/resources/media_internals/cache_entry.js (working copy)
|
| @@ -1,237 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -cr.define('media', function() {
|
| - 'use strict';
|
| -
|
| - /**
|
| - * This class represents a file cached by net.
|
| - */
|
| - function CacheEntry() {
|
| - this.read_ = new media.DisjointRangeSet;
|
| - this.written_ = new media.DisjointRangeSet;
|
| - this.available_ = new media.DisjointRangeSet;
|
| -
|
| - // Set to true when we know the entry is sparse.
|
| - this.sparse = false;
|
| - this.key = null;
|
| - this.size = null;
|
| -
|
| - // The <details> element representing this CacheEntry.
|
| - this.details_ = document.createElement('details');
|
| - this.details_.className = 'cache-entry';
|
| - this.details_.open = false;
|
| -
|
| - // The <details> summary line. It contains a chart of requested file ranges
|
| - // and the url if we know it.
|
| - var summary = document.createElement('summary');
|
| -
|
| - this.summaryText_ = document.createTextNode('');
|
| - summary.appendChild(this.summaryText_);
|
| -
|
| - summary.appendChild(document.createTextNode(' '));
|
| -
|
| - // Controls to modify this CacheEntry.
|
| - var controls = document.createElement('span');
|
| - controls.className = 'cache-entry-controls';
|
| - summary.appendChild(controls);
|
| - summary.appendChild(document.createElement('br'));
|
| -
|
| - // A link to clear recorded data from this CacheEntry.
|
| - var clearControl = document.createElement('a');
|
| - clearControl.href = 'javascript:void(0)';
|
| - clearControl.onclick = this.clear.bind(this);
|
| - clearControl.textContent = '(clear entry)';
|
| - controls.appendChild(clearControl);
|
| -
|
| - 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 = {
|
| - /**
|
| - * Mark a range of bytes as read from the cache.
|
| - * @param {int} start The first byte read.
|
| - * @param {int} length The number of bytes read.
|
| - */
|
| - readBytes: function(start, length) {
|
| - start = parseInt(start);
|
| - length = parseInt(length);
|
| - this.read_.add(start, start + length);
|
| - this.available_.add(start, start + length);
|
| - this.sparse = true;
|
| - },
|
| -
|
| - /**
|
| - * Mark a range of bytes as written to the cache.
|
| - * @param {int} start The first byte written.
|
| - * @param {int} length The number of bytes written.
|
| - */
|
| - writeBytes: function(start, length) {
|
| - start = parseInt(start);
|
| - length = parseInt(length);
|
| - this.written_.add(start, start + length);
|
| - this.available_.add(start, start + length);
|
| - this.sparse = true;
|
| - },
|
| -
|
| - /**
|
| - * Merge this CacheEntry with another, merging recorded ranges and flags.
|
| - * @param {CacheEntry} other The CacheEntry to merge into this one.
|
| - */
|
| - merge: function(other) {
|
| - this.read_.merge(other.read_);
|
| - this.written_.merge(other.written_);
|
| - this.available_.merge(other.available_);
|
| - this.sparse = this.sparse || other.sparse;
|
| - this.key = this.key || other.key;
|
| - this.size = this.size || other.size;
|
| - },
|
| -
|
| - /**
|
| - * Clear all recorded ranges from this CacheEntry and redraw this.details_.
|
| - */
|
| - clear: function() {
|
| - this.read_ = new media.DisjointRangeSet;
|
| - this.written_ = new media.DisjointRangeSet;
|
| - this.available_ = new media.DisjointRangeSet;
|
| - this.generateDetails();
|
| - },
|
| -
|
| - /**
|
| - * Helper for drawCacheReadsToCanvas() and drawCacheWritesToCanvas().
|
| - *
|
| - * Accepts the entries to draw, a canvas fill style, and the canvas to
|
| - * draw on.
|
| - */
|
| - 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, 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);
|
| - },
|
| -
|
| - /**
|
| - * Update this.details_ to contain everything we currently know about
|
| - * this file.
|
| - */
|
| - generateDetails: function() {
|
| - this.details_.id = this.key;
|
| - this.summaryText_.textContent = this.key || 'Unknown File';
|
| -
|
| - this.detailTable_.textContent = '';
|
| - var header = document.createElement('thead');
|
| - var footer = document.createElement('tfoot');
|
| - var body = document.createElement('tbody');
|
| - this.detailTable_.appendChild(header);
|
| - this.detailTable_.appendChild(footer);
|
| - this.detailTable_.appendChild(body);
|
| -
|
| - var headerRow = document.createElement('tr');
|
| - headerRow.appendChild(media.makeElement('th', 'Read From Cache'));
|
| - headerRow.appendChild(media.makeElement('th', 'Written To Cache'));
|
| - header.appendChild(headerRow);
|
| -
|
| - var footerRow = document.createElement('tr');
|
| - var footerCell = document.createElement('td');
|
| - footerCell.textContent = 'Out of ' + (this.size || 'unkown size');
|
| - footerCell.setAttribute('colspan', 2);
|
| - footerRow.appendChild(footerCell);
|
| - footer.appendChild(footerRow);
|
| -
|
| - var read = this.read_.map(function(start, end) {
|
| - return start + ' - ' + end;
|
| - });
|
| - var written = this.written_.map(function(start, end) {
|
| - return start + ' - ' + end;
|
| - });
|
| -
|
| - var length = Math.max(read.length, written.length);
|
| - for (var i = 0; i < length; i++) {
|
| - var row = document.createElement('tr');
|
| - row.appendChild(media.makeElement('td', read[i] || ''));
|
| - row.appendChild(media.makeElement('td', written[i] || ''));
|
| - body.appendChild(row);
|
| - }
|
| -
|
| - this.drawCacheWritesToCanvas(this.writeCanvas);
|
| - this.drawCacheReadsToCanvas(this.readCanvas);
|
| - },
|
| -
|
| - /**
|
| - * Render this CacheEntry as a <li>.
|
| - * @return {HTMLElement} A <li> representing this CacheEntry.
|
| - */
|
| - toListItem: function() {
|
| - this.generateDetails();
|
| -
|
| - var result = document.createElement('li');
|
| - result.appendChild(this.details_);
|
| - return result;
|
| - }
|
| - };
|
| -
|
| - return {
|
| - CacheEntry: CacheEntry
|
| - };
|
| -});
|
|
|