| Index: chrome/browser/resources/gpu_internals/timeline_view.js
 | 
| diff --git a/chrome/browser/resources/gpu_internals/timeline_view.js b/chrome/browser/resources/gpu_internals/timeline_view.js
 | 
| deleted file mode 100644
 | 
| index c4e1c3e63f456ac68ff153fbc20890cfd0020e73..0000000000000000000000000000000000000000
 | 
| --- a/chrome/browser/resources/gpu_internals/timeline_view.js
 | 
| +++ /dev/null
 | 
| @@ -1,182 +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.
 | 
| -
 | 
| -
 | 
| -/**
 | 
| - * @fileoverview TimelineView visualizes GPU_TRACE events using the
 | 
| - * gpu.Timeline component.
 | 
| - */
 | 
| -cr.define('gpu', function() {
 | 
| -  function tsRound(ts) {
 | 
| -    return Math.round(ts * 1000.0) / 1000.0;
 | 
| -  }
 | 
| -  function getPadding(text, width) {
 | 
| -    width = width || 0;
 | 
| -
 | 
| -    if (typeof text != 'string')
 | 
| -      text = String(text);
 | 
| -
 | 
| -    if (text.length >= width)
 | 
| -      return '';
 | 
| -
 | 
| -    var pad = '';
 | 
| -    for (var i = 0; i < width - text.length; i++)
 | 
| -      pad += ' ';
 | 
| -    return pad;
 | 
| -  }
 | 
| -
 | 
| -  function leftAlign(text, width) {
 | 
| -    return text + getPadding(text, width);
 | 
| -  }
 | 
| -
 | 
| -  function rightAlign(text, width) {
 | 
| -    return getPadding(text, width) + text;
 | 
| -  }
 | 
| -
 | 
| -  /**
 | 
| -   * TimelineView
 | 
| -   * @constructor
 | 
| -   * @extends {HTMLDivElement}
 | 
| -   */
 | 
| -  TimelineView = cr.ui.define('div');
 | 
| -
 | 
| -  TimelineView.prototype = {
 | 
| -    __proto__: HTMLDivElement.prototype,
 | 
| -
 | 
| -    decorate: function() {
 | 
| -      this.className = 'timeline-view';
 | 
| -
 | 
| -      this.timelineContainer_ = document.createElement('div');
 | 
| -      this.timelineContainer_.className = 'timeline-container';
 | 
| -
 | 
| -      var summaryContainer_ = document.createElement('div');
 | 
| -      summaryContainer_.className = 'summary-container';
 | 
| -
 | 
| -      this.summaryEl_ = document.createElement('pre');
 | 
| -      this.summaryEl_.className = 'summary';
 | 
| -
 | 
| -      summaryContainer_.appendChild(this.summaryEl_);
 | 
| -      this.appendChild(this.timelineContainer_);
 | 
| -      this.appendChild(summaryContainer_);
 | 
| -
 | 
| -      this.onSelectionChangedBoundToThis_ = this.onSelectionChanged_.bind(this);
 | 
| -    },
 | 
| -
 | 
| -    set traceEvents(traceEvents) {
 | 
| -      console.log('TimelineView.refresh');
 | 
| -      this.timelineModel_ = new gpu.TimelineModel(traceEvents);
 | 
| -
 | 
| -      // remove old timeline
 | 
| -      this.timelineContainer_.textContent = '';
 | 
| -
 | 
| -      // create new timeline if needed
 | 
| -      if (traceEvents.length) {
 | 
| -        this.timeline_ = new gpu.Timeline();
 | 
| -        this.timeline_.model = this.timelineModel_;
 | 
| -        this.timelineContainer_.appendChild(this.timeline_);
 | 
| -        this.timeline_.onResize();
 | 
| -        this.timeline_.addEventListener('selectionChange',
 | 
| -                                        this.onSelectionChangedBoundToThis_);
 | 
| -        this.onSelectionChanged_();
 | 
| -      } else {
 | 
| -        this.timeline_ = null;
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    onSelectionChanged_: function(e) {
 | 
| -      console.log('selection changed');
 | 
| -      var timeline = this.timeline_;
 | 
| -      var selection = timeline.selection;
 | 
| -      if (!selection.length) {
 | 
| -        var oldScrollTop = this.timelineContainer_.scrollTop;
 | 
| -        this.summaryEl_.textContent = timeline.keyHelp;
 | 
| -        this.timelineContainer_.scrollTop = oldScrollTop;
 | 
| -        return;
 | 
| -      }
 | 
| -
 | 
| -      var text = '';
 | 
| -      if (selection.length == 1) {
 | 
| -        var c0Width = 10;
 | 
| -        var slice = selection[0].slice;
 | 
| -        text = 'Selected item:\n';
 | 
| -        text += leftAlign('Title', c0Width) + ': ' + slice.title + '\n';
 | 
| -        text += leftAlign('Start', c0Width) + ': ' +
 | 
| -            tsRound(slice.start) + ' ms\n';
 | 
| -        text += leftAlign('Duration', c0Width) + ': ' +
 | 
| -            tsRound(slice.duration) + ' ms\n';
 | 
| -
 | 
| -        var n = 0;
 | 
| -        for (var argName in slice.args) {
 | 
| -          n += 1;
 | 
| -        }
 | 
| -        if (n > 0) {
 | 
| -          text += leftAlign('Args', c0Width) + ':\n';
 | 
| -          for (var argName in slice.args) {
 | 
| -            var argVal = slice.args[argName];
 | 
| -            text += leftAlign(' ' + argName, c0Width) + ': ' + argVal + '\n';
 | 
| -          }
 | 
| -        }
 | 
| -      } else {
 | 
| -        var c0Width = 55;
 | 
| -        var c1Width = 12;
 | 
| -        var c2Width = 5;
 | 
| -        text = 'Selection summary:\n';
 | 
| -        var tsLo = Math.min.apply(Math, selection.map(
 | 
| -            function(s) {return s.slice.start;}));
 | 
| -        var tsHi = Math.max.apply(Math, selection.map(
 | 
| -            function(s) {return s.slice.end;}));
 | 
| -
 | 
| -        // compute total selection duration
 | 
| -        var titles = selection.map(function(i) { return i.slice.title; });
 | 
| -
 | 
| -        var slicesByTitle = {};
 | 
| -        for (var i = 0; i < selection.length; i++) {
 | 
| -          var slice = selection[i].slice;
 | 
| -          if (!slicesByTitle[slice.title])
 | 
| -            slicesByTitle[slice.title] = {
 | 
| -              slices: []
 | 
| -            };
 | 
| -          slicesByTitle[slice.title].slices.push(slice);
 | 
| -        }
 | 
| -        var totalDuration = 0;
 | 
| -        for (var sliceGroupTitle in slicesByTitle) {
 | 
| -          var sliceGroup = slicesByTitle[sliceGroupTitle];
 | 
| -          var duration = 0;
 | 
| -          for (i = 0; i < sliceGroup.slices.length; i++)
 | 
| -            duration += sliceGroup.slices[i].duration;
 | 
| -          totalDuration += duration;
 | 
| -
 | 
| -          text += ' ' +
 | 
| -              leftAlign(sliceGroupTitle, c0Width) + ': ' +
 | 
| -              rightAlign(tsRound(duration) + 'ms', c1Width) + '   ' +
 | 
| -              rightAlign(String(sliceGroup.slices.length), c2Width) +
 | 
| -              ' occurrences' + '\n';
 | 
| -        }
 | 
| -
 | 
| -        text += leftAlign('*Totals', c0Width) + ' : ' +
 | 
| -            rightAlign(tsRound(totalDuration) + 'ms', c1Width) + '   ' +
 | 
| -            rightAlign(String(selection.length), c2Width) + ' occurrences' +
 | 
| -            '\n';
 | 
| -
 | 
| -        text += '\n';
 | 
| -
 | 
| -        text += leftAlign('Selection start', c0Width) + ' : ' +
 | 
| -            rightAlign(tsRound(tsLo) + 'ms', c1Width) +
 | 
| -            '\n';
 | 
| -        text += leftAlign('Selection extent', c0Width) + ' : ' +
 | 
| -            rightAlign(tsRound(tsHi - tsLo) + 'ms', c1Width) +
 | 
| -            '\n';
 | 
| -      }
 | 
| -
 | 
| -      // done
 | 
| -      var oldScrollTop = this.timelineContainer_.scrollTop;
 | 
| -      this.summaryEl_.textContent = text;
 | 
| -      this.timelineContainer_.scrollTop = oldScrollTop;
 | 
| -    }
 | 
| -  };
 | 
| -
 | 
| -  return {
 | 
| -    TimelineView: TimelineView
 | 
| -  };
 | 
| -});
 | 
| 
 |