blob: 6d6bf4eedf1938e4de71c6b89e66ec503ad40a58 [file] [log] [blame]
// 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();