Chromium Code Reviews| 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 |