OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 */ | 7 */ |
8 WebInspector.TimelineTraceEventBindings = function() | 8 WebInspector.TimelineTraceEventBindings = function() |
9 { | 9 { |
10 this._reset(); | 10 this._reset(); |
(...skipping 10 matching lines...) Expand all Loading... | |
21 BeginMainThreadFrame: "BeginMainThreadFrame", | 21 BeginMainThreadFrame: "BeginMainThreadFrame", |
22 ActivateLayerTree: "ActivateLayerTree", | 22 ActivateLayerTree: "ActivateLayerTree", |
23 DrawFrame: "DrawFrame", | 23 DrawFrame: "DrawFrame", |
24 ScheduleStyleRecalculation: "ScheduleStyleRecalculation", | 24 ScheduleStyleRecalculation: "ScheduleStyleRecalculation", |
25 RecalculateStyles: "RecalculateStyles", | 25 RecalculateStyles: "RecalculateStyles", |
26 InvalidateLayout: "InvalidateLayout", | 26 InvalidateLayout: "InvalidateLayout", |
27 Layout: "Layout", | 27 Layout: "Layout", |
28 UpdateLayerTree: "UpdateLayerTree", | 28 UpdateLayerTree: "UpdateLayerTree", |
29 PaintSetup: "PaintSetup", | 29 PaintSetup: "PaintSetup", |
30 Paint: "Paint", | 30 Paint: "Paint", |
31 PaintImage: "PaintImage", | |
31 Rasterize: "Rasterize", | 32 Rasterize: "Rasterize", |
32 RasterTask: "RasterTask", | 33 RasterTask: "RasterTask", |
33 ScrollLayer: "ScrollLayer", | 34 ScrollLayer: "ScrollLayer", |
34 DecodeImage: "DecodeImage", | |
35 ResizeImage: "ResizeImage", | |
36 CompositeLayers: "CompositeLayers", | 35 CompositeLayers: "CompositeLayers", |
37 | 36 |
38 ParseHTML: "ParseHTML", | 37 ParseHTML: "ParseHTML", |
39 | 38 |
40 TimerInstall: "TimerInstall", | 39 TimerInstall: "TimerInstall", |
41 TimerRemove: "TimerRemove", | 40 TimerRemove: "TimerRemove", |
42 TimerFire: "TimerFire", | 41 TimerFire: "TimerFire", |
43 | 42 |
44 XHRReadyStateChange: "XHRReadyStateChange", | 43 XHRReadyStateChange: "XHRReadyStateChange", |
45 XHRLoad: "XHRLoad", | 44 XHRLoad: "XHRLoad", |
(...skipping 25 matching lines...) Expand all Loading... | |
71 WebSocketSendHandshakeRequest : "WebSocketSendHandshakeRequest", | 70 WebSocketSendHandshakeRequest : "WebSocketSendHandshakeRequest", |
72 WebSocketReceiveHandshakeResponse : "WebSocketReceiveHandshakeResponse", | 71 WebSocketReceiveHandshakeResponse : "WebSocketReceiveHandshakeResponse", |
73 WebSocketDestroy : "WebSocketDestroy", | 72 WebSocketDestroy : "WebSocketDestroy", |
74 | 73 |
75 EmbedderCallback : "EmbedderCallback", | 74 EmbedderCallback : "EmbedderCallback", |
76 | 75 |
77 CallStack: "CallStack", | 76 CallStack: "CallStack", |
78 SetLayerTreeId: "SetLayerTreeId", | 77 SetLayerTreeId: "SetLayerTreeId", |
79 TracingStartedInPage: "TracingStartedInPage", | 78 TracingStartedInPage: "TracingStartedInPage", |
80 | 79 |
80 DecodeImage: "Decode Image", | |
81 ResizeImage: "Resize Image", | |
82 DrawLazyPixelRef: "Draw LazyPixelRef", | |
83 DecodeLazyPixelRef: "Decode LazyPixelRef", | |
84 | |
85 LazyPixelRef: "LazyPixelRef", | |
81 LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl" | 86 LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl" |
82 }; | 87 }; |
83 | 88 |
84 | 89 |
85 WebInspector.TimelineTraceEventBindings.prototype = { | 90 WebInspector.TimelineTraceEventBindings.prototype = { |
86 /** | 91 /** |
87 * @return {!Array.<!WebInspector.TracingModel.Event>} | 92 * @return {!Array.<!WebInspector.TracingModel.Event>} |
88 */ | 93 */ |
89 mainThreadEvents: function() | 94 mainThreadEvents: function() |
90 { | 95 { |
91 return this._mainThreadEvents; | 96 return this._mainThreadEvents; |
92 }, | 97 }, |
93 | 98 |
94 _reset: function() | 99 _reset: function() |
95 { | 100 { |
96 this._resetProcessingState(); | 101 this._resetProcessingState(); |
97 this._mainThreadEvents = []; | 102 this._mainThreadEvents = []; |
98 }, | 103 }, |
99 | 104 |
100 _resetProcessingState: function() | 105 _resetProcessingState: function() |
101 { | 106 { |
102 this._sendRequestEvents = {}; | 107 this._sendRequestEvents = {}; |
103 this._timerEvents = {}; | 108 this._timerEvents = {}; |
104 this._requestAnimationFrameEvents = {}; | 109 this._requestAnimationFrameEvents = {}; |
105 this._layoutInvalidate = {}; | 110 this._layoutInvalidate = {}; |
106 this._lastScheduleStyleRecalculation = {}; | 111 this._lastScheduleStyleRecalculation = {}; |
107 this._webSocketCreateEvents = {}; | 112 this._webSocketCreateEvents = {}; |
113 this._paintImageEventByPixelRefId = {}; | |
108 | 114 |
109 this._lastRecalculateStylesEvent = null; | 115 this._lastRecalculateStylesEvent = null; |
110 this._currentScriptEvent = null; | 116 this._currentScriptEvent = null; |
111 this._eventStack = []; | 117 this._eventStack = []; |
112 }, | 118 }, |
113 | 119 |
114 /** | 120 /** |
115 * @param {!Array.<!WebInspector.TracingModel.Event>} events | 121 * @param {!Array.<!WebInspector.TracingModel.Event>} events |
116 */ | 122 */ |
117 setEvents: function(events) | 123 setEvents: function(events) |
(...skipping 29 matching lines...) Expand all Loading... | |
147 | 153 |
148 switch (event.name) { | 154 switch (event.name) { |
149 case recordTypes.CallStack: | 155 case recordTypes.CallStack: |
150 var lastMainThreadEvent = this._mainThreadEvents.peekLast(); | 156 var lastMainThreadEvent = this._mainThreadEvents.peekLast(); |
151 if (lastMainThreadEvent) | 157 if (lastMainThreadEvent) |
152 lastMainThreadEvent.stackTrace = event.args.stack; | 158 lastMainThreadEvent.stackTrace = event.args.stack; |
153 break; | 159 break; |
154 | 160 |
155 case recordTypes.ResourceSendRequest: | 161 case recordTypes.ResourceSendRequest: |
156 this._sendRequestEvents[event.args.data["requestId"]] = event; | 162 this._sendRequestEvents[event.args.data["requestId"]] = event; |
163 event.imageURL = event.args.data["url"]; | |
157 break; | 164 break; |
158 | 165 |
159 case recordTypes.ResourceReceiveResponse: | 166 case recordTypes.ResourceReceiveResponse: |
160 case recordTypes.ResourceReceivedData: | 167 case recordTypes.ResourceReceivedData: |
161 case recordTypes.ResourceFinish: | 168 case recordTypes.ResourceFinish: |
162 event.initiator = this._sendRequestEvents[event.args.data["requestId "]]; | 169 event.initiator = this._sendRequestEvents[event.args.data["requestId "]]; |
170 if (event.initiator) | |
171 event.imageURL = event.initiator.imageURL; | |
163 break; | 172 break; |
164 | 173 |
165 case recordTypes.TimerInstall: | 174 case recordTypes.TimerInstall: |
166 this._timerEvents[event.args.data["timerId"]] = event; | 175 this._timerEvents[event.args.data["timerId"]] = event; |
167 break; | 176 break; |
168 | 177 |
169 case recordTypes.TimerFire: | 178 case recordTypes.TimerFire: |
170 event.initiator = this._timerEvents[event.args.data["timerId"]]; | 179 event.initiator = this._timerEvents[event.args.data["timerId"]]; |
171 break; | 180 break; |
172 | 181 |
(...skipping 20 matching lines...) Expand all Loading... | |
193 var layoutInitator = event; | 202 var layoutInitator = event; |
194 var frameId = event.args.frame; | 203 var frameId = event.args.frame; |
195 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE vent && this._lastRecalculateStylesEvent.endTime > event.startTime) | 204 if (!this._layoutInvalidate[frameId] && this._lastRecalculateStylesE vent && this._lastRecalculateStylesEvent.endTime > event.startTime) |
196 layoutInitator = this._lastRecalculateStylesEvent.initiator; | 205 layoutInitator = this._lastRecalculateStylesEvent.initiator; |
197 this._layoutInvalidate[frameId] = layoutInitator; | 206 this._layoutInvalidate[frameId] = layoutInitator; |
198 break; | 207 break; |
199 | 208 |
200 case recordTypes.Layout: | 209 case recordTypes.Layout: |
201 var frameId = event.args["beginData"]["frame"]; | 210 var frameId = event.args["beginData"]["frame"]; |
202 event.initiator = this._layoutInvalidate[frameId]; | 211 event.initiator = this._layoutInvalidate[frameId]; |
212 if (event.args["endData"]) | |
yurys
2014/06/02 11:22:24
endData always exists for Layout event, no need to
caseq
2014/06/02 11:57:19
Done.
| |
213 event.backendNodeId = event.args["endData"]["rootNode"]; | |
203 this._layoutInvalidate[frameId] = null; | 214 this._layoutInvalidate[frameId] = null; |
204 if (this._currentScriptEvent) | 215 if (this._currentScriptEvent) |
205 event.warning = WebInspector.UIString("Forced synchronous layout is a possible performance bottleneck."); | 216 event.warning = WebInspector.UIString("Forced synchronous layout is a possible performance bottleneck."); |
206 break; | 217 break; |
207 | 218 |
208 case recordTypes.WebSocketCreate: | 219 case recordTypes.WebSocketCreate: |
209 this._webSocketCreateEvents[event.args.data["identifier"]] = event; | 220 this._webSocketCreateEvents[event.args.data["identifier"]] = event; |
210 break; | 221 break; |
211 | 222 |
212 case recordTypes.WebSocketSendHandshakeRequest: | 223 case recordTypes.WebSocketSendHandshakeRequest: |
213 case recordTypes.WebSocketReceiveHandshakeResponse: | 224 case recordTypes.WebSocketReceiveHandshakeResponse: |
214 case recordTypes.WebSocketDestroy: | 225 case recordTypes.WebSocketDestroy: |
215 event.initiator = this._webSocketCreateEvents[event.args.data["ident ifier"]]; | 226 event.initiator = this._webSocketCreateEvents[event.args.data["ident ifier"]]; |
216 break; | 227 break; |
217 | 228 |
218 case recordTypes.EvaluateScript: | 229 case recordTypes.EvaluateScript: |
219 case recordTypes.FunctionCall: | 230 case recordTypes.FunctionCall: |
220 if (!this._currentScriptEvent) | 231 if (!this._currentScriptEvent) |
221 this._currentScriptEvent = event; | 232 this._currentScriptEvent = event; |
222 break; | 233 break; |
223 | 234 |
224 case recordTypes.SetLayerTreeId: | 235 case recordTypes.SetLayerTreeId: |
225 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; | 236 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; |
226 break; | 237 break; |
227 | 238 |
228 case recordTypes.TracingStartedInPage: | 239 case recordTypes.TracingStartedInPage: |
229 this._mainThread = event.thread; | 240 this._mainThread = event.thread; |
230 break; | 241 break; |
242 | |
243 case recordTypes.Paint: | |
244 case recordTypes.ScrollLayer: | |
245 event.backendNodeId = event.args["data"]["nodeId"]; | |
246 break; | |
247 | |
248 case recordTypes.PaintImage: | |
249 event.backendNodeId = event.args["data"]["nodeId"]; | |
250 event.imageURL = event.args["data"]["url"]; | |
251 break; | |
252 | |
253 case recordTypes.DecodeImage: | |
254 case recordTypes.ResizeImage: | |
255 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage ); | |
256 if (!paintImageEvent) { | |
257 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType s.DecodeLazyPixelRef); | |
258 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]]; | |
259 } | |
260 if (!paintImageEvent) | |
261 break; | |
262 event.backendNodeId = paintImageEvent.backendNodeId; | |
yurys
2014/06/02 11:22:24
Would it make sense to write initiator instead:
e
caseq
2014/06/02 11:57:19
Discussed this offline and decided not to do it no
| |
263 event.imageURL = paintImageEvent.imageURL; | |
264 break; | |
265 | |
266 case recordTypes.DrawLazyPixelRef: | |
267 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage ); | |
268 if (!paintImageEvent) | |
269 break; | |
270 this._paintImageEventByPixelRefId[event.args["LazyPixelRef"]] = pain tImageEvent; | |
271 event.backendNodeId = paintImageEvent.backendNodeId; | |
272 event.imageURL = paintImageEvent.imageURL; | |
273 break; | |
231 } | 274 } |
232 if (this._mainThread === event.thread) | 275 if (this._mainThread === event.thread) |
233 this._mainThreadEvents.push(event); | 276 this._mainThreadEvents.push(event); |
277 }, | |
278 | |
279 /** | |
280 * @param {string} name | |
281 * @return {?WebInspector.TracingModel.Event} | |
282 */ | |
283 _findAncestorEvent: function(name) | |
284 { | |
285 for (var i = this._eventStack.length - 1; i >= 0; --i) { | |
286 var event = this._eventStack[i]; | |
287 if (event.name === name) | |
288 return event; | |
289 } | |
290 return null; | |
234 } | 291 } |
235 } | 292 } |
236 | 293 |
OLD | NEW |