blob: 02c5386cb4a9ba5cdf3d792b0f6e13739fd9a728 [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.Console = function()
{
/** @type {!Array.<!WebInspector.Console.Message>} */
this._messages = [];
}
/**
* @enum {string}
*/
WebInspector.Console.Events = {
MessageAdded: "messageAdded"
}
/**
* @enum {string}
*/
WebInspector.Console.MessageLevel = {
Log: "log",
Warning: "warning",
Error: "error"
}
/**
* @constructor
* @param {string} text
* @param {!WebInspector.Console.MessageLevel} level
* @param {number} timestamp
* @param {boolean} show
*/
WebInspector.Console.Message = function(text, level, timestamp, show)
{
this.text = text;
this.level = level;
this.timestamp = (typeof timestamp === "number") ? timestamp : Date.now();
this.show = show;
}
/**
* @interface
*/
WebInspector.Console.UIDelegate = function()
{
}
WebInspector.Console.UIDelegate.prototype = {
showConsole: function() { }
}
WebInspector.Console.prototype = {
/**
* @param {!WebInspector.Console.UIDelegate} uiDelegate
*/
setUIDelegate: function(uiDelegate)
{
this._uiDelegate = uiDelegate;
},
/**
* @param {string} text
* @param {!WebInspector.Console.MessageLevel} level
* @param {boolean=} show
*/
addMessage: function(text, level, show)
{
var message = new WebInspector.Console.Message(text, level || WebInspector.Console.MessageLevel.Log, Date.now(), show || false);
this._messages.push(message);
this.dispatchEventToListeners(WebInspector.Console.Events.MessageAdded, message);
},
/**
* @param {string} text
*/
log: function(text)
{
this.addMessage(text, WebInspector.Console.MessageLevel.Log);
},
/**
* @param {string} text
*/
warn: function(text)
{
this.addMessage(text, WebInspector.Console.MessageLevel.Warning);
},
/**
* @param {string} text
*/
error: function(text)
{
this.addMessage(text, WebInspector.Console.MessageLevel.Error, true);
},
/**
* @return {!Array.<!WebInspector.Console.Message>}
*/
messages: function()
{
return this._messages;
},
show: function()
{
if (this._uiDelegate)
this._uiDelegate.showConsole();
},
__proto__: WebInspector.Object.prototype
}
WebInspector.console = new WebInspector.Console();