OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 24 matching lines...) Expand all Loading... | |
35 WebInspector.PresentationConsoleMessageHelper = function(workspace) | 35 WebInspector.PresentationConsoleMessageHelper = function(workspace) |
36 { | 36 { |
37 this._workspace = workspace; | 37 this._workspace = workspace; |
38 | 38 |
39 /** @type {!Object.<string, !Array.<!WebInspector.ConsoleMessage>>} */ | 39 /** @type {!Object.<string, !Array.<!WebInspector.ConsoleMessage>>} */ |
40 this._pendingConsoleMessages = {}; | 40 this._pendingConsoleMessages = {}; |
41 | 41 |
42 /** @type {!Array.<!WebInspector.PresentationConsoleMessage>} */ | 42 /** @type {!Array.<!WebInspector.PresentationConsoleMessage>} */ |
43 this._presentationConsoleMessages = []; | 43 this._presentationConsoleMessages = []; |
44 | 44 |
45 /** @type {!Map.<!WebInspector.UISourceCode, !Array.<!WebInspector.Presentat ionConsoleMessage>>} */ | |
46 this._uiSourceCodeToMessages = new Map(); | |
47 | |
48 /** @type {!Map.<!WebInspector.UISourceCode, !WebInspector.Object>} */ | |
49 this._uiSourceCodeToEventTarget = new Map(); | |
50 | |
51 workspace.addEventListener(WebInspector.Workspace.Events.UISourceCodeRemoved , this._uiSourceCodeRemoved, this); | |
52 workspace.addEventListener(WebInspector.Workspace.Events.ProjectRemoved, thi s._projectRemoved, this); | |
53 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo del.Events.ConsoleCleared, this._consoleCleared, this); | 45 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo del.Events.ConsoleCleared, this._consoleCleared, this); |
54 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo del.Events.MessageAdded, this._onConsoleMessageAdded, this); | 46 WebInspector.multitargetConsoleModel.addEventListener(WebInspector.ConsoleMo del.Events.MessageAdded, this._onConsoleMessageAdded, this); |
55 WebInspector.multitargetConsoleModel.messages().forEach(this._consoleMessage Added, this); | 47 WebInspector.multitargetConsoleModel.messages().forEach(this._consoleMessage Added, this); |
56 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this ); | 48 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.ParsedScriptSource, this._parsedScriptSource, this ); |
57 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSourc e, this); | 49 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.FailedToParseScriptSource, this._parsedScriptSourc e, this); |
58 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this); | 50 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI nspector.DebuggerModel.Events.GlobalObjectCleared, this._debuggerReset, this); |
59 } | 51 } |
60 | 52 |
61 /** | |
62 * @enum {string} | |
63 */ | |
64 WebInspector.PresentationConsoleMessageHelper.Events = { | |
65 ConsoleMessageAdded: "ConsoleMessageAdded", | |
66 ConsoleMessageRemoved: "ConsoleMessageRemoved", | |
67 ConsoleMessagesCleared: "ConsoleMessagesCleared", | |
68 } | |
69 | |
70 WebInspector.PresentationConsoleMessageHelper.prototype = { | 53 WebInspector.PresentationConsoleMessageHelper.prototype = { |
71 /** | 54 /** |
72 * @param {!WebInspector.PresentationConsoleMessageHelper.Events} eventType | |
73 * @param {!WebInspector.UISourceCode} uiSourceCode | |
74 * @param {function(!WebInspector.Event)} listener | |
75 * @param {!Object=} thisObject | |
76 */ | |
77 addConsoleMessageEventListener: function(eventType, uiSourceCode, listener, thisObject) | |
78 { | |
79 var target = this._uiSourceCodeToEventTarget.get(uiSourceCode); | |
80 if (!target) { | |
81 target = new WebInspector.Object(); | |
82 this._uiSourceCodeToEventTarget.set(uiSourceCode, target); | |
83 } | |
84 target.addEventListener(eventType, listener, thisObject); | |
85 }, | |
86 | |
87 /** | |
88 * @param {!WebInspector.PresentationConsoleMessageHelper.Events} eventType | |
89 * @param {!WebInspector.UISourceCode} uiSourceCode | |
90 * @param {function(!WebInspector.Event)} listener | |
91 * @param {!Object=} thisObject | |
92 */ | |
93 removeConsoleMessageEventListener: function(eventType, uiSourceCode, listene r, thisObject) | |
94 { | |
95 var target = this._uiSourceCodeToEventTarget.get(uiSourceCode); | |
96 if (!target) | |
97 return; | |
98 target.removeEventListener(eventType, listener, thisObject); | |
99 }, | |
100 | |
101 /** | |
102 * @param {!WebInspector.UISourceCode} uiSourceCode | |
103 * @return {!Array.<!WebInspector.PresentationConsoleMessage>} | |
104 */ | |
105 consoleMessages: function(uiSourceCode) | |
106 { | |
107 return this._uiSourceCodeToMessages.get(uiSourceCode) || []; | |
108 }, | |
109 | |
110 /** | |
111 * @param {!WebInspector.PresentationConsoleMessageHelper.Events} eventType | |
112 * @param {!WebInspector.UISourceCode} uiSourceCode | |
113 * @param {!WebInspector.PresentationConsoleMessage=} message | |
114 */ | |
115 _dispatchConsoleEvent: function(eventType, uiSourceCode, message) | |
116 { | |
117 var target = this._uiSourceCodeToEventTarget.get(uiSourceCode); | |
118 if (!target) | |
119 return; | |
120 target.dispatchEventToListeners(eventType, message); | |
121 }, | |
122 | |
123 /** | |
124 * @param {!WebInspector.Event} event | |
125 */ | |
126 _uiSourceCodeRemoved: function(event) | |
127 { | |
128 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data ); | |
129 this._uiSourceCodeToEventTarget.remove(uiSourceCode); | |
130 this._uiSourceCodeToMessages.remove(uiSourceCode); | |
131 }, | |
132 | |
133 /** | |
134 * @param {!WebInspector.Event} event | |
135 */ | |
136 _projectRemoved: function(event) | |
137 { | |
138 var project = /** @type {!WebInspector.Project} */ (event.data); | |
139 var uiSourceCodes = project.uiSourceCodes(); | |
140 for (var i = 0; i < uiSourceCodes.length; ++i) { | |
141 this._uiSourceCodeToEventTarget.remove(uiSourceCodes[i]); | |
142 this._uiSourceCodeToMessages.remove(uiSourceCodes[i]); | |
143 } | |
144 }, | |
145 | |
146 /** | |
147 * @param {!WebInspector.Event} event | 55 * @param {!WebInspector.Event} event |
148 */ | 56 */ |
149 _onConsoleMessageAdded: function(event) | 57 _onConsoleMessageAdded: function(event) |
150 { | 58 { |
151 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); | 59 var message = /** @type {!WebInspector.ConsoleMessage} */ (event.data); |
152 this._consoleMessageAdded(message); | 60 this._consoleMessageAdded(message); |
153 }, | 61 }, |
154 | 62 |
155 /** | 63 /** |
156 * @param {!WebInspector.ConsoleMessage} message | 64 * @param {!WebInspector.ConsoleMessage} message |
(...skipping 29 matching lines...) Expand all Loading... | |
186 return debuggerModel.createRawLocationByURL(message.url || "", lineNumbe r, columnNumber); | 94 return debuggerModel.createRawLocationByURL(message.url || "", lineNumbe r, columnNumber); |
187 }, | 95 }, |
188 | 96 |
189 /** | 97 /** |
190 * @param {!WebInspector.ConsoleMessage} message | 98 * @param {!WebInspector.ConsoleMessage} message |
191 * @param {!WebInspector.DebuggerModel.Location} rawLocation | 99 * @param {!WebInspector.DebuggerModel.Location} rawLocation |
192 */ | 100 */ |
193 _addConsoleMessageToScript: function(message, rawLocation) | 101 _addConsoleMessageToScript: function(message, rawLocation) |
194 { | 102 { |
195 this._presentationConsoleMessages.push(new WebInspector.PresentationCons oleMessage(message, rawLocation)); | 103 this._presentationConsoleMessages.push(new WebInspector.PresentationCons oleMessage(message, rawLocation)); |
104 debugger; | |
dgozman
2015/10/27 21:43:49
straw debugger
pfeldman
2015/10/27 22:35:17
Done.
| |
196 }, | 105 }, |
197 | 106 |
198 /** | 107 /** |
199 * @param {!WebInspector.ConsoleMessage} message | 108 * @param {!WebInspector.ConsoleMessage} message |
200 */ | 109 */ |
201 _addPendingConsoleMessage: function(message) | 110 _addPendingConsoleMessage: function(message) |
202 { | 111 { |
203 if (!message.url) | 112 if (!message.url) |
204 return; | 113 return; |
205 if (!this._pendingConsoleMessages[message.url]) | 114 if (!this._pendingConsoleMessages[message.url]) |
(...skipping 23 matching lines...) Expand all Loading... | |
229 else | 138 else |
230 pendingMessages.push(message); | 139 pendingMessages.push(message); |
231 } | 140 } |
232 | 141 |
233 if (pendingMessages.length) | 142 if (pendingMessages.length) |
234 this._pendingConsoleMessages[script.sourceURL] = pendingMessages; | 143 this._pendingConsoleMessages[script.sourceURL] = pendingMessages; |
235 else | 144 else |
236 delete this._pendingConsoleMessages[script.sourceURL]; | 145 delete this._pendingConsoleMessages[script.sourceURL]; |
237 }, | 146 }, |
238 | 147 |
239 /** | |
240 * @param {!WebInspector.PresentationConsoleMessage} message | |
241 */ | |
242 _presentationConsoleMessageAdded: function(message) | |
243 { | |
244 var uiSourceCode = message._uiLocation.uiSourceCode; | |
245 var messages = this._uiSourceCodeToMessages.get(uiSourceCode); | |
246 if (!messages) { | |
247 messages = []; | |
248 this._uiSourceCodeToMessages.set(uiSourceCode, messages); | |
249 } | |
250 messages.push(message); | |
251 this._dispatchConsoleEvent(WebInspector.PresentationConsoleMessageHelper .Events.ConsoleMessageAdded, uiSourceCode, message); | |
252 }, | |
253 | |
254 /** | |
255 * @param {!WebInspector.PresentationConsoleMessage} message | |
256 */ | |
257 _presentationConsoleMessageRemoved: function(message) | |
258 { | |
259 var uiSourceCode = message._uiLocation.uiSourceCode; | |
260 var messages = this._uiSourceCodeToMessages.get(uiSourceCode); | |
261 if (!messages) | |
262 return; | |
263 messages.remove(message); | |
264 this._dispatchConsoleEvent(WebInspector.PresentationConsoleMessageHelper .Events.ConsoleMessageRemoved, uiSourceCode, message); | |
265 }, | |
266 | |
267 _consoleCleared: function() | 148 _consoleCleared: function() |
268 { | 149 { |
269 this._pendingConsoleMessages = {}; | 150 this._pendingConsoleMessages = {}; |
270 for (var i = 0; i < this._presentationConsoleMessages.length; ++i) | 151 for (var i = 0; i < this._presentationConsoleMessages.length; ++i) |
271 this._presentationConsoleMessages[i].dispose(); | 152 this._presentationConsoleMessages[i].dispose(); |
272 this._presentationConsoleMessages = []; | 153 this._presentationConsoleMessages = []; |
273 var targets = this._uiSourceCodeToEventTarget.valuesArray(); | |
274 for (var i = 0; i < targets.length; ++i) | |
275 targets[i].dispatchEventToListeners(WebInspector.PresentationConsole MessageHelper.Events.ConsoleMessagesCleared); | |
276 this._uiSourceCodeToMessages.clear(); | |
277 }, | 154 }, |
278 | 155 |
279 _debuggerReset: function() | 156 _debuggerReset: function() |
280 { | 157 { |
281 this._consoleCleared(); | 158 this._consoleCleared(); |
282 } | 159 } |
283 } | 160 } |
284 | 161 |
285 /** | 162 /** |
286 * @constructor | 163 * @constructor |
287 * @param {!WebInspector.ConsoleMessage} message | 164 * @param {!WebInspector.ConsoleMessage} message |
288 * @param {!WebInspector.DebuggerModel.Location} rawLocation | 165 * @param {!WebInspector.DebuggerModel.Location} rawLocation |
289 */ | 166 */ |
290 WebInspector.PresentationConsoleMessage = function(message, rawLocation) | 167 WebInspector.PresentationConsoleMessage = function(message, rawLocation) |
291 { | 168 { |
292 this.originalMessage = message; | 169 this._text = message.messageText; |
170 this._level = message.level === WebInspector.ConsoleMessage.MessageLevel.Err or ? WebInspector.UISourceCode.Message.Level.Error : WebInspector.UISourceCode.M essage.Level.Warning; | |
293 this._liveLocation = WebInspector.debuggerWorkspaceBinding.createLiveLocatio n(rawLocation, this._updateLocation.bind(this)); | 171 this._liveLocation = WebInspector.debuggerWorkspaceBinding.createLiveLocatio n(rawLocation, this._updateLocation.bind(this)); |
294 } | 172 } |
295 | 173 |
296 WebInspector.PresentationConsoleMessage.prototype = { | 174 WebInspector.PresentationConsoleMessage.prototype = { |
297 /** | 175 /** |
298 * @param {!WebInspector.UILocation} uiLocation | 176 * @param {!WebInspector.UILocation} uiLocation |
299 */ | 177 */ |
300 _updateLocation: function(uiLocation) | 178 _updateLocation: function(uiLocation) |
301 { | 179 { |
302 if (this._uiLocation) | 180 if (this._uiMessage) |
303 WebInspector.presentationConsoleMessageHelper._presentationConsoleMe ssageRemoved(this); | 181 this._uiMessage.remove(); |
304 this._uiLocation = uiLocation; | 182 this._uiMessage = uiLocation.uiSourceCode.addMessage(this._level, this._ text, uiLocation.lineNumber, uiLocation.columnNumber); |
305 WebInspector.presentationConsoleMessageHelper._presentationConsoleMessag eAdded(this); | |
306 }, | |
307 | |
308 /** | |
309 * @return {number} | |
310 */ | |
311 lineNumber: function() | |
312 { | |
313 return this._uiLocation.lineNumber; | |
314 }, | |
315 | |
316 /** | |
317 * @return {number} | |
318 */ | |
319 columnNumber: function() | |
320 { | |
321 return this._uiLocation.columnNumber; | |
322 }, | 183 }, |
323 | 184 |
324 dispose: function() | 185 dispose: function() |
325 { | 186 { |
326 this._liveLocation.dispose(); | 187 this._liveLocation.dispose(); |
188 if (this._uiMessage) | |
189 this._uiMessage.remove(); | |
327 } | 190 } |
328 } | 191 } |
329 | 192 |
330 /** @type {!WebInspector.PresentationConsoleMessageHelper} */ | 193 /** @type {!WebInspector.PresentationConsoleMessageHelper} */ |
331 WebInspector.presentationConsoleMessageHelper; | 194 WebInspector.presentationConsoleMessageHelper; |
OLD | NEW |