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

Unified Diff: chrome/browser/resources/media_internals/event_list.js

Issue 7972028: Display active media players on chrome://media-internals. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src
Patch Set: fixes Created 9 years, 2 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: 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..ce22f569d07d11e69b0f86cba22df9d6da456fcd
--- /dev/null
+++ b/chrome/browser/resources/media_internals/event_list.js
@@ -0,0 +1,64 @@
+// 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) {
+ var timeInMs = event.time * 1000; // Work with milliseconds.
+ this.startTime_ = this.startTime_ || timeInMs;
+ timeInMs -= this.startTime_;
+
+ var row = document.createElement('tr');
+ row.appendChild(media.makeElement('td', timeInMs.toFixed(1)));
+ row.appendChild(media.makeElement('td', event.type));
+ var params = [];
+ for (var i = 0; i < event.params.length; ++i) {
+ params.push(i + ': ' + event.params[i]);
+ }
+
+ row.appendChild(media.makeElement('td', params.join(', ')));
+ this.table_.appendChild(row);
+ }
+ };
+
+ return {
+ EventList: EventList
+ };
+});

Powered by Google App Engine
This is Rietveld 408576698