1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5/** 6 * @constructor 7 * @extends {WebInspector.Object} 8 */ 9WebInspector.MessageSink = function() 10{ 11 /** @type {!Array.<!WebInspector.MessageSink.Message>} */ 12 this._messages = []; 13} 14 15/** 16 * @enum {string} 17 */ 18WebInspector.MessageSink.Events = { 19 MessageAdded: "messageAdded" 20} 21 22/** 23 * @enum {string} 24 */ 25WebInspector.MessageSink.MessageLevel = { 26 Log: "log", 27 Warning: "warning", 28 Error: "error" 29} 30 31/** 32 * @constructor 33 * @param {string} text 34 * @param {!WebInspector.MessageSink.MessageLevel} level 35 * @param {number} timestamp 36 * @param {boolean} show 37 */ 38WebInspector.MessageSink.Message = function(text, level, timestamp, show) 39{ 40 this.text = text; 41 this.level = level; 42 this.timestamp = (typeof timestamp === "number") ? timestamp : Date.now(); 43 this.show = show; 44} 45 46WebInspector.MessageSink.prototype = { 47 /** 48 * @param {string} text 49 * @param {!WebInspector.MessageSink.MessageLevel=} level 50 * @param {boolean=} show 51 */ 52 addMessage: function(text, level, show) 53 { 54 var message = new WebInspector.MessageSink.Message(text, level || WebInspector.MessageSink.MessageLevel.Log, Date.now(), show || false); 55 this._messages.push(message); 56 this.dispatchEventToListeners(WebInspector.MessageSink.Events.MessageAdded, message); 57 }, 58 59 /** 60 * @param {string} text 61 * @param {boolean=} show 62 */ 63 addErrorMessage: function(text, show) 64 { 65 this.addMessage(text, WebInspector.MessageSink.MessageLevel.Error, show); 66 }, 67 68 /** 69 * @return {!Array.<!WebInspector.MessageSink.Message>} 70 */ 71 messages: function() 72 { 73 return this._messages; 74 }, 75 76 __proto__: WebInspector.Object.prototype 77} 78 79WebInspector.messageSink = new WebInspector.MessageSink(); 80