Index: chrome/browser/resources/media_internals/event_list.js |
diff --git a/chrome/browser/resources/media_internals/event_list.js b/chrome/browser/resources/media_internals/event_list.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ca701e99034b5cabd57e59dd88074f77077fb870 |
--- /dev/null |
+++ b/chrome/browser/resources/media_internals/event_list.js |
@@ -0,0 +1,63 @@ |
+// 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 holds a list of MediaLogEvents. |
+ * It inherits from <li> and contains a tabular list of said events, |
+ * the time at which they occurred, and their parameters. |
+ */ |
+ var EventList = cr.ui.define('li'); |
+ |
+ EventList.prototype = { |
+ __proto__: HTMLLIElement.prototype, |
+ startTime_: null, |
+ |
+ /** |
+ * Decorate this list item as an EventList. |
+ */ |
+ decorate: function() { |
+ this.table_ = document.createElement('table'); |
+ var details = document.createElement('details'); |
+ var summary = media.makeElement('summary', 'Log:'); |
+ details.appendChild(summary); |
+ details.appendChild(this.table_); |
+ this.appendChild(details); |
+ |
+ var hRow = document.createElement('tr'); |
+ hRow.appendChild(media.makeElement('th', 'Time:')); |
+ hRow.appendChild(media.makeElement('th', 'Event:')); |
+ hRow.appendChild(media.makeElement('th', 'Parameters:')); |
+ var header = document.createElement('thead'); |
+ header.appendChild(hRow); |
+ this.table_.appendChild(header); |
+ }, |
+ |
+ /** |
+ * Add an event to the list. It is stored as a new row in this.table_. |
+ * @param {Object} event The MediaLogEvent that has occurred. |
+ */ |
+ addEvent: function(event) { |
+ this.startTime_ = this.startTime_ || event.time; |
+ event.time -= this.startTime_; |
+ |
+ var row = document.createElement('tr'); |
+ row.appendChild(media.makeElement('td', media.round(event.time))); |
+ row.appendChild(media.makeElement('td', event.type)); |
+ var params = []; |
+ for (var p in event.params) { |
+ params.push(p + ': ' + event.params[p]); |
+ } |
+ |
+ row.appendChild(media.makeElement('td', params.join(', '))); |
+ this.table_.appendChild(row); |
+ } |
+ }; |
+ |
+ return { |
+ EventList: EventList |
+ }; |
+}); |