| Index: Source/devtools/front_end/timeline/TracingTimelineModel.js
|
| diff --git a/Source/devtools/front_end/timeline/TracingTimelineModel.js b/Source/devtools/front_end/timeline/TracingTimelineModel.js
|
| index 79f540a5916cb1e302fb21098e033c46a9e8c346..cb302fb76326803f2cf441558a18457d7937d9fc 100644
|
| --- a/Source/devtools/front_end/timeline/TracingTimelineModel.js
|
| +++ b/Source/devtools/front_end/timeline/TracingTimelineModel.js
|
| @@ -32,6 +32,7 @@ WebInspector.TracingTimelineModel.RecordType = {
|
| RecalculateStyles: "RecalculateStyles",
|
| InvalidateLayout: "InvalidateLayout",
|
| Layout: "Layout",
|
| + UpdateLayer: "UpdateLayer",
|
| PaintSetup: "PaintSetup",
|
| Paint: "Paint",
|
| PaintImage: "PaintImage",
|
| @@ -89,7 +90,8 @@ WebInspector.TracingTimelineModel.RecordType = {
|
| DecodeLazyPixelRef: "Decode LazyPixelRef",
|
|
|
| LazyPixelRef: "LazyPixelRef",
|
| - LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl"
|
| + LayerTreeHostImplSnapshot: "cc::LayerTreeHostImpl",
|
| + PictureSnapshot: "cc::Picture"
|
| };
|
|
|
| WebInspector.TracingTimelineModel.defaultTracingCategoryFilter = "*,disabled-by-default-cc.debug,disabled-by-default-devtools.timeline,disabled-by-default-devtools.timeline.frame";
|
| @@ -98,8 +100,9 @@ WebInspector.TracingTimelineModel.prototype = {
|
| /**
|
| * @param {boolean} captureStacks
|
| * @param {boolean} captureMemory
|
| + * @param {boolean} capturePictures
|
| */
|
| - startRecording: function(captureStacks, captureMemory)
|
| + startRecording: function(captureStacks, captureMemory, capturePictures)
|
| {
|
| var categories;
|
| if (WebInspector.experimentsSettings.timelineTracingMode.isEnabled()) {
|
| @@ -108,6 +111,8 @@ WebInspector.TracingTimelineModel.prototype = {
|
| var categoriesArray = ["disabled-by-default-devtools.timeline", "disabled-by-default-devtools.timeline.frame", "devtools"];
|
| if (captureStacks)
|
| categoriesArray.push("disabled-by-default-devtools.timeline.stack");
|
| + if (capturePictures)
|
| + categoriesArray.push("disabled-by-default-devtools.timeline.layers", "disabled-by-default-devtools.timeline.picture");
|
| categories = categoriesArray.join(",");
|
| }
|
| this._startRecordingWithCategories(categories);
|
| @@ -254,7 +259,7 @@ WebInspector.TracingTimelineModel.prototype = {
|
| this._lastScheduleStyleRecalculation = {};
|
| this._webSocketCreateEvents = {};
|
| this._paintImageEventByPixelRefId = {};
|
| -
|
| + this._lastPaintForLayer = {};
|
| this._lastRecalculateStylesEvent = null;
|
| this._currentScriptEvent = null;
|
| this._eventStack = [];
|
| @@ -394,7 +399,23 @@ WebInspector.TracingTimelineModel.prototype = {
|
|
|
| case recordTypes.Paint:
|
| event.highlightQuad = event.args["data"]["clip"];
|
| - // Initionally fall through.
|
| + event.backendNodeId = event.args["data"]["nodeId"];
|
| + var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLayer);
|
| + if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== this._inspectedTargetLayerTreeId)
|
| + break;
|
| + this._lastPaintForLayer[layerUpdateEvent.args["layerId"]] = event;
|
| + break;
|
| +
|
| + case recordTypes.PictureSnapshot:
|
| + var layerUpdateEvent = this._findAncestorEvent(recordTypes.UpdateLayer);
|
| + if (!layerUpdateEvent || layerUpdateEvent.args["layerTreeId"] !== this._inspectedTargetLayerTreeId)
|
| + break;
|
| + var paintEvent = this._lastPaintForLayer[layerUpdateEvent.args["layerId"]];
|
| + if (!paintEvent)
|
| + break;
|
| + paintEvent.picture = event.args["snapshot"]["skp64"];
|
| + break;
|
| +
|
| case recordTypes.ScrollLayer:
|
| event.backendNodeId = event.args["data"]["nodeId"];
|
| break;
|
|
|