Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1517)

Unified Diff: Source/devtools/front_end/timeline/TimelineTraceEventBindings.js

Issue 308123008: DevTools: added support for image url & node in tracing-based timeline (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: skip check for presence of endData in Layout Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderImage.cpp ('k') | Source/devtools/front_end/timeline/TimelineUIUtils.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
diff --git a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
index 8640f1adc31b6d17d4d0887e894282b757fc1901..4b5b1533fa4f7790f5a833dd5493ff610c207257 100644
--- a/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
+++ b/Source/devtools/front_end/timeline/TimelineTraceEventBindings.js
@@ -28,11 +28,10 @@ WebInspector.TimelineTraceEventBindings.RecordType = {
UpdateLayerTree: "UpdateLayerTree",
PaintSetup: "PaintSetup",
Paint: "Paint",
+ PaintImage: "PaintImage",
Rasterize: "Rasterize",
RasterTask: "RasterTask",
ScrollLayer: "ScrollLayer",
- DecodeImage: "DecodeImage",
- ResizeImage: "ResizeImage",
CompositeLayers: "CompositeLayers",
ParseHTML: "ParseHTML",
@@ -78,6 +77,12 @@ WebInspector.TimelineTraceEventBindings.RecordType = {
SetLayerTreeId: "SetLayerTreeId",
TracingStartedInPage: "TracingStartedInPage",
+ DecodeImage: "Decode Image",
+ ResizeImage: "Resize Image",
+ DrawLazyPixelRef: "Draw LazyPixelRef",
+ DecodeLazyPixelRef: "Decode LazyPixelRef",
+
+ LazyPixelRef: "LazyPixelRef",
LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl"
};
@@ -105,6 +110,7 @@ WebInspector.TimelineTraceEventBindings.prototype = {
this._layoutInvalidate = {};
this._lastScheduleStyleRecalculation = {};
this._webSocketCreateEvents = {};
+ this._paintImageEventByPixelRefId = {};
this._lastRecalculateStylesEvent = null;
this._currentScriptEvent = null;
@@ -154,12 +160,15 @@ WebInspector.TimelineTraceEventBindings.prototype = {
case recordTypes.ResourceSendRequest:
this._sendRequestEvents[event.args.data["requestId"]] = event;
+ event.imageURL = event.args.data["url"];
break;
case recordTypes.ResourceReceiveResponse:
case recordTypes.ResourceReceivedData:
case recordTypes.ResourceFinish:
event.initiator = this._sendRequestEvents[event.args.data["requestId"]];
+ if (event.initiator)
+ event.imageURL = event.initiator.imageURL;
break;
case recordTypes.TimerInstall:
@@ -200,6 +209,7 @@ WebInspector.TimelineTraceEventBindings.prototype = {
case recordTypes.Layout:
var frameId = event.args["beginData"]["frame"];
event.initiator = this._layoutInvalidate[frameId];
+ event.backendNodeId = event.args["endData"]["rootNode"];
this._layoutInvalidate[frameId] = null;
if (this._currentScriptEvent)
event.warning = WebInspector.UIString("Forced synchronous layout is a possible performance bottleneck.");
@@ -228,9 +238,55 @@ WebInspector.TimelineTraceEventBindings.prototype = {
case recordTypes.TracingStartedInPage:
this._mainThread = event.thread;
break;
+
+ case recordTypes.Paint:
+ case recordTypes.ScrollLayer:
+ event.backendNodeId = event.args["data"]["nodeId"];
+ break;
+
+ case recordTypes.PaintImage:
+ event.backendNodeId = event.args["data"]["nodeId"];
+ event.imageURL = event.args["data"]["url"];
+ break;
+
+ case recordTypes.DecodeImage:
+ case recordTypes.ResizeImage:
+ var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage);
+ if (!paintImageEvent) {
+ var decodeLazyPixelRefEvent = this._findAncestorEvent(recordTypes.DecodeLazyPixelRef);
+ paintImageEvent = decodeLazyPixelRefEvent && this._paintImageEventByPixelRefId[decodeLazyPixelRefEvent.args["LazyPixelRef"]];
+ }
+ if (!paintImageEvent)
+ break;
+ event.backendNodeId = paintImageEvent.backendNodeId;
+ event.imageURL = paintImageEvent.imageURL;
+ break;
+
+ case recordTypes.DrawLazyPixelRef:
+ var paintImageEvent = this._findAncestorEvent(recordTypes.PaintImage);
+ if (!paintImageEvent)
+ break;
+ this._paintImageEventByPixelRefId[event.args["LazyPixelRef"]] = paintImageEvent;
+ event.backendNodeId = paintImageEvent.backendNodeId;
+ event.imageURL = paintImageEvent.imageURL;
+ break;
}
if (this._mainThread === event.thread)
this._mainThreadEvents.push(event);
+ },
+
+ /**
+ * @param {string} name
+ * @return {?WebInspector.TracingModel.Event}
+ */
+ _findAncestorEvent: function(name)
+ {
+ for (var i = this._eventStack.length - 1; i >= 0; --i) {
+ var event = this._eventStack[i];
+ if (event.name === name)
+ return event;
+ }
+ return null;
}
}
« no previous file with comments | « Source/core/rendering/RenderImage.cpp ('k') | Source/devtools/front_end/timeline/TimelineUIUtils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698