Move Webstore URL concepts to //extensions and out
[chromium-blink-merge.git] / chrome / browser / resources / net_internals / cros_log_entry.js
blob70822a060cf7e48a6116237960e9e929cc2217a3
1 // Copyright 2013 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.
5 /**
6 * This class stores information of one single entry of log
7 */
9 var CrosLogEntry = function() {
11 /**
12 * @constructor
14 function CrosLogEntry() {
15 // The entry is visible by default
16 this.visibility = true;
19 CrosLogEntry.prototype = {
20 //------------------------------------------------------------------------
21 // Log input text parser
22 // Parses network log into tokens like time, name, pid
23 // and description.
24 //--------------------------------------------------------------------------
25 tokenizeNetworkLog: function(NetworkLogEntry) {
26 var tokens = NetworkLogEntry.split(' ');
27 var timeTokens = tokens[0].split(/[\s|\:|\-|T|\.]/);
29 // List of all parameters for Date Object
30 var year = timeTokens[0];
31 var month = timeTokens[1];
32 var day = timeTokens[2];
33 var hour = timeTokens[3];
34 var minute = timeTokens[4];
35 var second = timeTokens[5];
36 var millisecond = (parseInt(timeTokens[6]) / 1000).toFixed(0);
37 this.time = new Date(year, month, day, hour, minute,
38 second, millisecond);
40 // Parses for process name and ID.
41 var process = tokens[2];
42 if (hasProcessID(process)) {
43 var processTokens = process.split(/[\[|\]]/);
44 this.processName = processTokens[0];
45 this.processID = processTokens[1];
46 } else {
47 this.processName = process.split(/\:/)[0];
48 this.processID = 'Unknown';
51 // Gets level of the log: error|warning|info|unknown if failed.
52 this.level = hasLevelInfo(tokens[3]);
54 // Treats the rest of the entry as description.
55 var descriptionStartPoint = NetworkLogEntry.indexOf(tokens[2]) +
56 tokens[2].length;
57 this.description = NetworkLogEntry.substr(descriptionStartPoint);
60 // Represents the Date object as a string.
61 getTime: function() {
62 return this.time.getMonth() + '/' + this.time.getDate() +
63 ' ' + this.time.getHours() + ':' + this.time.getMinutes() +
64 ':' + this.time.getSeconds() + ':' + this.time.getMilliseconds();
68 /**
69 * Helper function
70 * Takes a token as input and searches for '['.
71 * We assume if the token contains '[' it contains a process ID.
73 * @param {string} token A token from log
74 * @return {boolean} true if '[' is found
76 var hasProcessID = function(token) {
77 return token != undefined && token.indexOf('[') != -1;
80 /**
81 * Helper function
82 * Checks if the input token contains level information.
84 * @param {string} token A token from log
85 * @return {string} Level found in the token
87 var hasLevelInfo = function(token) {
88 if (token == undefined)
89 return 'Unknown';
90 if (token.toLowerCase().indexOf('err') != -1) {
91 return 'Error';
92 } else if (token.toLowerCase().indexOf('warn') != -1) {
93 return 'Warning';
94 } else if (token.toLowerCase().indexOf('info') != -1) {
95 return 'Info';
96 } else {
97 return 'Unknown';
101 return CrosLogEntry;
102 }();