Index: Source/devtools/front_end/common/MessageSink.js |
diff --git a/Source/devtools/front_end/common/MessageSink.js b/Source/devtools/front_end/common/MessageSink.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6d6bf4eedf1938e4de71c6b89e66ec503ad40a58 |
--- /dev/null |
+++ b/Source/devtools/front_end/common/MessageSink.js |
@@ -0,0 +1,79 @@ |
+// Copyright 2014 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. |
+ |
+/** |
+ * @constructor |
+ * @extends {WebInspector.Object} |
+ */ |
+WebInspector.MessageSink = function() |
+{ |
+ /** @type {!Array.<!WebInspector.MessageSink.Message>} */ |
+ this._messages = []; |
+} |
+ |
+/** |
+ * @enum {string} |
+ */ |
+WebInspector.MessageSink.Events = { |
+ MessageAdded: "messageAdded" |
+} |
+ |
+/** |
+ * @enum {string} |
+ */ |
+WebInspector.MessageSink.MessageLevel = { |
+ Log: "log", |
+ Warning: "warning", |
+ Error: "error" |
+} |
+ |
+/** |
+ * @constructor |
+ * @param {string} text |
+ * @param {!WebInspector.MessageSink.MessageLevel} level |
+ * @param {number} timestamp |
+ * @param {boolean} show |
+ */ |
+WebInspector.MessageSink.Message = function(text, level, timestamp, show) |
+{ |
+ this.text = text; |
+ this.level = level; |
+ this.timestamp = (typeof timestamp === "number") ? timestamp : Date.now(); |
+ this.show = show; |
+} |
+ |
+WebInspector.MessageSink.prototype = { |
+ /** |
+ * @param {string} text |
+ * @param {!WebInspector.MessageSink.MessageLevel=} level |
+ * @param {boolean=} show |
+ */ |
+ addMessage: function(text, level, show) |
+ { |
+ var message = new WebInspector.MessageSink.Message(text, level || WebInspector.MessageSink.MessageLevel.Log, Date.now(), show || false); |
+ this._messages.push(message); |
+ this.dispatchEventToListeners(WebInspector.MessageSink.Events.MessageAdded, message); |
+ }, |
+ |
+ /** |
+ * @param {string} text |
+ * @param {boolean=} show |
+ */ |
+ addErrorMessage: function(text, show) |
+ { |
+ this.addMessage(text, WebInspector.MessageSink.MessageLevel.Error, show); |
+ }, |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.MessageSink.Message>} |
+ */ |
+ messages: function() |
+ { |
+ return this._messages; |
+ }, |
+ |
+ __proto__: WebInspector.Object.prototype |
+} |
+ |
+WebInspector.messageSink = new WebInspector.MessageSink(); |