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 event.backendNodeId = event.args["endData"]["rootNode"]; |
203 this._layoutInvalidate[frameId] = null; | 213 this._layoutInvalidate[frameId] = null; |
204 if (this._currentScriptEvent) | 214 if (this._currentScriptEvent) |
205 event.warning = WebInspector.UIString("Forced synchronous layout
is a possible performance bottleneck."); | 215 event.warning = WebInspector.UIString("Forced synchronous layout
is a possible performance bottleneck."); |
206 break; | 216 break; |
207 | 217 |
208 case recordTypes.WebSocketCreate: | 218 case recordTypes.WebSocketCreate: |
209 this._webSocketCreateEvents[event.args.data["identifier"]] = event; | 219 this._webSocketCreateEvents[event.args.data["identifier"]] = event; |
210 break; | 220 break; |
211 | 221 |
212 case recordTypes.WebSocketSendHandshakeRequest: | 222 case recordTypes.WebSocketSendHandshakeRequest: |
213 case recordTypes.WebSocketReceiveHandshakeResponse: | 223 case recordTypes.WebSocketReceiveHandshakeResponse: |
214 case recordTypes.WebSocketDestroy: | 224 case recordTypes.WebSocketDestroy: |
215 event.initiator = this._webSocketCreateEvents[event.args.data["ident
ifier"]]; | 225 event.initiator = this._webSocketCreateEvents[event.args.data["ident
ifier"]]; |
216 break; | 226 break; |
217 | 227 |
218 case recordTypes.EvaluateScript: | 228 case recordTypes.EvaluateScript: |
219 case recordTypes.FunctionCall: | 229 case recordTypes.FunctionCall: |
220 if (!this._currentScriptEvent) | 230 if (!this._currentScriptEvent) |
221 this._currentScriptEvent = event; | 231 this._currentScriptEvent = event; |
222 break; | 232 break; |
223 | 233 |
224 case recordTypes.SetLayerTreeId: | 234 case recordTypes.SetLayerTreeId: |
225 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; | 235 this._inspectedTargetLayerTreeId = event.args["layerTreeId"]; |
226 break; | 236 break; |
227 | 237 |
228 case recordTypes.TracingStartedInPage: | 238 case recordTypes.TracingStartedInPage: |
229 this._mainThread = event.thread; | 239 this._mainThread = event.thread; |
230 break; | 240 break; |
| 241 |
| 242 case recordTypes.Paint: |
| 243 case recordTypes.ScrollLayer: |
| 244 event.backendNodeId = event.args["data"]["nodeId"]; |
| 245 break; |
| 246 |
| 247 case recordTypes.PaintImage: |
| 248 event.backendNodeId = event.args["data"]["nodeId"]; |
| 249 event.imageURL = event.args["data"]["url"]; |
| 250 break; |
| 251 |
| 252 case recordTypes.DecodeImage: |
| 253 case recordTypes.ResizeImage: |
| 254 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage
); |
| 255 if (!paintImageEvent) { |
| 256 var decodeLazyPixelRefEvent = this._findAncestorEvent(recordType
s.DecodeLazyPixelRef); |
| 257 paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEve
ntByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]]; |
| 258 } |
| 259 if (!paintImageEvent) |
| 260 break; |
| 261 event.backendNodeId = paintImageEvent.backendNodeId; |
| 262 event.imageURL = paintImageEvent.imageURL; |
| 263 break; |
| 264 |
| 265 case recordTypes.DrawLazyPixelRef: |
| 266 var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage
); |
| 267 if (!paintImageEvent) |
| 268 break; |
| 269 this._paintImageEventByPixelRefId[event.args["LazyPixelRef"]] = pain
tImageEvent; |
| 270 event.backendNodeId = paintImageEvent.backendNodeId; |
| 271 event.imageURL = paintImageEvent.imageURL; |
| 272 break; |
231 } | 273 } |
232 if (this._mainThread === event.thread) | 274 if (this._mainThread === event.thread) |
233 this._mainThreadEvents.push(event); | 275 this._mainThreadEvents.push(event); |
| 276 }, |
| 277 |
| 278 /** |
| 279 * @param {string} name |
| 280 * @return {?WebInspector.TracingModel.Event} |
| 281 */ |
| 282 _findAncestorEvent: function(name) |
| 283 { |
| 284 for (var i = this._eventStack.length - 1; i >= 0; --i) { |
| 285 var event = this._eventStack[i]; |
| 286 if (event.name === name) |
| 287 return event; |
| 288 } |
| 289 return null; |
234 } | 290 } |
235 } | 291 } |
236 | 292 |
OLD | NEW |