Home | History | Annotate | Download | only in common
      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  */
      9 WebInspector.MessageSink = function()
     10 {
     11     /** @type {!Array.<!WebInspector.MessageSink.Message>} */
     12     this._messages = [];
     13 }
     14 
     15 /**
     16  * @enum {string}
     17  */
     18 WebInspector.MessageSink.Events = {
     19     MessageAdded: "messageAdded"
     20 }
     21 
     22 /**
     23  * @enum {string}
     24  */
     25 WebInspector.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  */
     38 WebInspector.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 
     46 WebInspector.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 
     79 WebInspector.messageSink = new WebInspector.MessageSink();
     80