Index: content/browser/resources/media/new/log_painter.js |
diff --git a/content/browser/resources/media/new/log_painter.js b/content/browser/resources/media/new/log_painter.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6ef8c9d91ad8eab5c28fb535b6bde48f5eb1999c |
--- /dev/null |
+++ b/content/browser/resources/media/new/log_painter.js |
@@ -0,0 +1,70 @@ |
+// Copyright (c) 2012 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. |
+ |
+ |
+var logPainter = (function () { |
+ "use strict"; |
+ |
+ var logPainter = {}; |
+ |
+ // Creates a filter function for filtering the logs. |
+ function genFilterFun(text) { |
+ if (text.trim().length === 0) { |
+ return function () { |
+ return true; |
+ }; |
+ } |
+ |
+ var split = text.split(","); |
+ var trimmed = split.map(function (x) { |
+ return x.trim().toLowerCase(); |
+ }); |
+ |
+ return function (x) { |
+ return trimmed.indexOf(x.key.trim().toLowerCase()) !== -1; |
+ }; |
+ } |
+ |
+ logPainter.paintNew = function (playerInfo, div, properties) { |
+ // Make sure that we don't have anything else inside. |
+ removeChildren(div); |
+ var table = makeTable("Timestamp", "Key", "Value"); |
+ var filterFun = genFilterFun(properties.filterText); |
+ |
+ var logEntries = playerInfo.allEvents; |
+ logEntries = logEntries.filter(filterFun); |
+ |
+ playerInfo.lastRendered = playerInfo.allEvents.length; |
+ |
+ logEntries.forEach(function (entry) { |
+ appendRow(table, genLogRow(entry)); |
+ }); |
+ |
+ div.appendChild(table); |
+ }; |
+ |
+ logPainter.paintExist = function (playerInfo, div, properties) { |
+ // Find the existing table |
+ var table = div.querySelector("table"); |
+ var filterFun = genFilterFun(properties.filterText); |
+ |
+ // Cut off all the events that we've already rendered |
+ var logEntries = playerInfo.allEvents.slice(playerInfo.lastRendered); |
+ logEntries = logEntries.filter(filterFun); |
+ |
+ // Set the last rendered property so we |
+ // slice at the right place next time |
+ playerInfo.lastRendered = playerInfo.allEvents.length; |
+ |
+ logEntries.forEach(function (entry) { |
+ appendRow(table, genLogRow(entry)); |
+ }); |
+ }; |
+ |
+ logPainter.invalidate = function (playerInfo) { |
+ playerInfo.lastRendered = 0; |
+ }; |
+ |
+ return logPainter; |
+}()); |