Index: LayoutTests/inspector/timeline/timeline-frame-controller.html |
diff --git a/LayoutTests/inspector/timeline/timeline-frame-controller.html b/LayoutTests/inspector/timeline/timeline-frame-controller.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..257e5e4edbd309bfd8d5f20d4c03a462f51785cb |
--- /dev/null |
+++ b/LayoutTests/inspector/timeline/timeline-frame-controller.html |
@@ -0,0 +1,134 @@ |
+<html> |
+<head> |
+<script src="../../http/tests/inspector/inspector-test.js"></script> |
+<script src="../../http/tests/inspector/timeline-test.js"></script> |
+<script> |
+function initialize_timelineFrameController() |
+{ |
+ |
+InspectorTest.dumpFrame = function(frame) |
+{ |
+ var fieldsToDump = ["cpuTime", "duration", "startTime", "endTime", "id", "mainThreadFrameId", "isBackground", "timeByCategory", "other", "scripting"]; |
+ function formatFields(object) |
+ { |
+ var result = {}; |
+ for (var key in object) { |
+ if (fieldsToDump.indexOf(key) < 0) |
+ continue; |
+ var value = object[key]; |
+ if (typeof value === "number") |
+ value = Number(value.toFixed(7)); |
+ else if (typeof value === "object" && value) |
+ value = formatFields(value); |
+ result[key] = value; |
+ } |
+ return result; |
+ } |
+ InspectorTest.addObject(formatFields(frame)); |
+} |
+ |
+} |
+ |
+function test() |
+{ |
+ var records = [ |
+ {"startTime": 999.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1000.000, "data":{},"endTime":1003.999, "type":"Program", "children":[ |
+ {"startTime":1000.001, "type":"BeginFrame", "data":{"id":"1"}}, |
+ {"startTime":1000.002, "endTime":1003.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1005.000, "type":"ActivateLayerTree", "data":{"id":"1"},"thread":"implSide"}, |
+ {"startTime": 1015.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1016.000, "data":{}, "endTime":1019.999,"type":"Program", "children":[ |
+ {"startTime":1016.001, "type":"BeginFrame", "data":{"id":"2"}}, |
+ {"startTime":1016.002, "endTime":1019.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1021.000, "type":"ActivateLayerTree", "data":{"id":"2"}, "thread":"implSide"}, |
+ {"startTime": 1031.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1032.000, "data":{}, "endTime":1035.999, "type":"Program", "children":[ |
+ {"startTime":1032.001, "type":"BeginFrame", "data":{"id":"3"}}, |
+ {"startTime":1032.002, "endTime":1035.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1041.000, "type":"ActivateLayerTree", "data":{"id":"3"}, "thread":"implSide"}, |
+ {"startTime": 1047.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1048.000, "data":{}, "endTime":1091.999, "type":"Program", "children":[ |
+ {"startTime":1048.001, "type":"BeginFrame", "data":{"id":"4"}}, |
+ {"startTime":1048.002, "endTime":1091.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1092.000, "type":"ActivateLayerTree", "data":{"id":"4"}, "thread":"implSide"}, |
+ {"startTime": 1063.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1079.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1095.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1100.000, "data":{}, "endTime":1103.999,"type":"Program", "children":[ |
+ {"startTime":1100.001, "type":"BeginFrame", "data":{"id":"5"}}, |
+ {"startTime":1100.002, "endTime":1103.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1105.000, "type":"ActivateLayerTree", "data":{"id":"5"}, "thread":"implSide"}, |
+ {"startTime": 1115.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1116.000,"data":{}, "endTime":1119.999, "type":"Program", "children":[ |
+ {"startTime":1116.001, "type":"BeginFrame", "data":{"id":"6"}}, |
+ {"startTime":1116.002, "endTime":1119.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1121.000, "type":"ActivateLayerTree", "data":{"id":"6"}, "thread":"implSide"}, |
+ {"startTime": 1131.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1132.000, "data":{}, "endTime":1135.999, "type":"Program", "children":[ |
+ {"startTime":1132.001, "type":"BeginFrame", "data":{"id":"7"}}, |
+ {"startTime":1132.002, "endTime":1135.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1137.000, "type":"ActivateLayerTree", "data":{"id":"7"},"thread":"implSide"}, |
+ {"startTime": 1147.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1148.000, "data":{}, "endTime":1191.999, "type":"Program", "children":[ |
+ {"startTime":1148.001, "type":"BeginFrame", "data":{"id":"8"}}, |
+ {"startTime":1148.002, "endTime":1191.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1192.000, "type":"ActivateLayerTree", "data":{"id":"8"}, "thread":"implSide"}, |
+ {"startTime": 1163.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1179.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1195.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1200.000, "data":{}, "endTime":1203.999,"type":"Program", "children":[ |
+ {"startTime":1200.001, "type":"BeginFrame", "data":{"id":"9"}}, |
+ {"startTime":1200.002, "endTime":1203.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1205.000, "type":"ActivateLayerTree", "data":{"id":"9"}, "thread":"implSide"}, |
+ {"startTime": 1215.990, "type":"BeginFrame","thread":"implSide"}, |
+ {"startTime": 1216.000, "data":{}, "endTime":1219.999, "type":"Program", "children":[ |
+ {"startTime":1216.001, "type":"BeginFrame", "data":{"id":"10"}}, |
+ {"startTime":1216.002, "endTime":1219.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1221.000, "type":"ActivateLayerTree", "data":{"id":"10"}, "thread":"implSide"}, |
+ {"startTime": 1231.990, "type":"BeginFrame","thread":"implSide"}, |
+ {"startTime": 1232.000, "data":{}, "endTime":1235.999, "type":"Program", "children":[ |
+ {"startTime":1232.001, "type":"BeginFrame","data":{"id":"11"}}, |
+ {"startTime":1232.002, "endTime":1235.999, "type":"FunctionCall" } |
+ ]}, |
+ {"startTime": 1237.000, "type":"ActivateLayerTree", "data":{"id":"11"}, "thread":"implSide"}, |
+ {"startTime": 1247.990, "type":"BeginFrame", "thread":"implSide"}, |
+ {"startTime": 1248.000, "data":{}, "endTime":1291.999, "type":"Program", "children":[ |
+ {"startTime":1248.001, "type":"BeginFrame", "data":{"id":"12"}}, |
+ {"startTime":1248.002, "endTime":1291.999, "type":"FunctionCall" } |
+ ]} |
+ ]; |
+ |
+ InspectorTest.loadTimelineRecords(records); |
+ |
+ var timelinePanel = WebInspector.panels.timeline; |
+ var overview = timelinePanel._overviewPane; |
+ overview.setMode(WebInspector.TimelineOverviewPane.Mode.Frames); |
+ var frameOverview = overview._overviewControl; |
+ InspectorTest.addResult("Main thread frames:"); |
+ frameOverview._mainThreadFrames.forEach(InspectorTest.dumpFrame, InspectorTest); |
+ InspectorTest.addResult("Background frames:"); |
+ frameOverview._backgroundFrames.forEach(InspectorTest.dumpFrame, InspectorTest); |
+ InspectorTest.completeTest(); |
+} |
+ |
+</script> |
+</head> |
+ |
+<body onload="runTest()"> |
+<p> |
+Test timeline records coalescing |
+</p> |
+ |
+</body> |
+</html> |