3 <script src="../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../../http/tests/inspector/timeline-test.js"></script>
6 function initialize_timelineFrameController()
9 InspectorTest.dumpFrame = function(frame)
11 var fieldsToDump = ["cpuTime", "duration", "startTime", "endTime", "id", "mainThreadFrameId", "isBackground", "timeByCategory", "other", "scripting", "painting"];
12 function formatFields(object)
15 for (var key in object) {
16 if (fieldsToDump.indexOf(key) < 0)
18 var value = object[key];
19 if (typeof value === "number")
20 value = Number(value.toFixed(7));
21 else if (typeof value === "object" && value)
22 value = formatFields(value);
27 InspectorTest.addObject(formatFields(frame));
35 {"startTime": 999.990, "type":"BeginFrame", "thread":"implSide"},
36 {"startTime": 1000.000, "data":{},"endTime":1003.999, "type":"Program", "children":[
37 {"startTime":1000.001, "type":"BeginFrame", "data":{"id":"1"}},
38 {"startTime":1000.002, "endTime":1003.999, "type":"FunctionCall" }
40 {"startTime": 1005.000, "type":"ActivateLayerTree", "data":{"id":"1"},"thread":"implSide"},
41 {"startTime": 1015.990, "type":"BeginFrame", "thread":"implSide"},
42 {"startTime": 1016.000, "data":{}, "endTime":1019.999,"type":"Program", "children":[
43 {"startTime":1016.001, "type":"BeginFrame", "data":{"id":"2"}},
44 {"startTime":1016.002, "endTime":1019.999, "type":"FunctionCall" }
46 {"startTime": 1021.000, "type":"ActivateLayerTree", "data":{"id":"2"}, "thread":"implSide"},
47 {"startTime": 1031.990, "type":"BeginFrame", "thread":"implSide"},
48 {"startTime": 1032.990, "type":"Rasterize", "thread":"implSide", "endTime": 1035.990},
49 {"startTime": 1032.000, "data":{}, "endTime":1035.999, "type":"Program", "children":[
50 {"startTime":1032.001, "type":"BeginFrame", "data":{"id":"3"}},
51 {"startTime":1032.002, "endTime":1035.999, "type":"FunctionCall" }
53 {"startTime": 1041.000, "type":"ActivateLayerTree", "data":{"id":"3"}, "thread":"implSide"},
54 {"startTime": 1047.990, "type":"BeginFrame", "thread":"implSide"},
55 {"startTime": 1048.000, "data":{}, "endTime":1091.999, "type":"Program", "children":[
56 {"startTime":1048.001, "type":"BeginFrame", "data":{"id":"4"}},
57 {"startTime":1048.002, "endTime":1091.999, "type":"FunctionCall" }
59 {"startTime": 1092.000, "type":"ActivateLayerTree", "data":{"id":"4"}, "thread":"implSide"},
60 {"startTime": 1063.990, "type":"BeginFrame", "thread":"implSide"},
61 {"startTime": 1079.990, "type":"BeginFrame", "thread":"implSide"},
62 {"startTime": 1095.990, "type":"BeginFrame", "thread":"implSide"},
63 {"startTime": 1100.000, "data":{}, "endTime":1103.999,"type":"Program", "children":[
64 {"startTime":1100.001, "type":"BeginFrame", "data":{"id":"5"}},
65 {"startTime":1100.002, "endTime":1103.999, "type":"FunctionCall" }
67 {"startTime": 1105.000, "type":"ActivateLayerTree", "data":{"id":"5"}, "thread":"implSide"},
68 {"startTime": 1115.990, "type":"BeginFrame", "thread":"implSide"},
69 {"startTime": 1116.990, "type":"Rasterize", "thread":"1", "endTime": 1118.990},
70 {"startTime": 1117.990, "type":"Rasterize", "thread":"2", "endTime": 1119.990},
71 {"startTime": 1116.000,"data":{}, "endTime":1119.999, "type":"Program", "children":[
72 {"startTime":1116.001, "type":"BeginFrame", "data":{"id":"6"}},
73 {"startTime":1116.002, "endTime":1119.999, "type":"FunctionCall" }
75 {"startTime": 1121.000, "type":"ActivateLayerTree", "data":{"id":"6"}, "thread":"implSide"},
76 {"startTime": 1131.990, "type":"BeginFrame", "thread":"implSide"},
77 {"startTime": 1132.000, "data":{}, "endTime":1135.999, "type":"Program", "children":[
78 {"startTime":1132.001, "type":"BeginFrame", "data":{"id":"7"}},
79 {"startTime":1132.002, "endTime":1135.999, "type":"FunctionCall" }
81 {"startTime": 1137.000, "type":"ActivateLayerTree", "data":{"id":"7"},"thread":"implSide"},
82 {"startTime": 1147.990, "type":"BeginFrame", "thread":"implSide"},
83 {"startTime": 1148.000, "data":{}, "endTime":1191.999, "type":"Program", "children":[
84 {"startTime":1148.001, "type":"BeginFrame", "data":{"id":"8"}},
85 {"startTime":1148.002, "endTime":1191.999, "type":"FunctionCall" }
87 {"startTime": 1192.000, "type":"ActivateLayerTree", "data":{"id":"8"}, "thread":"implSide"},
88 {"startTime": 1163.990, "type":"BeginFrame", "thread":"implSide"},
89 {"startTime": 1179.990, "type":"BeginFrame", "thread":"implSide"},
90 {"startTime": 1195.990, "type":"BeginFrame", "thread":"implSide"},
91 {"startTime": 1200.000, "data":{}, "endTime":1203.999,"type":"Program", "children":[
92 {"startTime":1200.001, "type":"BeginFrame", "data":{"id":"9"}},
93 {"startTime":1200.002, "endTime":1203.999, "type":"FunctionCall" }
95 {"startTime": 1205.000, "type":"ActivateLayerTree", "data":{"id":"9"}, "thread":"implSide"},
96 {"startTime": 1215.990, "type":"BeginFrame","thread":"implSide"},
97 {"startTime": 1216.000, "data":{}, "endTime":1219.999, "type":"Program", "children":[
98 {"startTime":1216.001, "type":"BeginFrame", "data":{"id":"10"}},
99 {"startTime":1216.002, "endTime":1219.999, "type":"FunctionCall" }
101 {"startTime": 1221.000, "type":"ActivateLayerTree", "data":{"id":"10"}, "thread":"implSide"},
102 {"startTime": 1231.990, "type":"BeginFrame","thread":"implSide"},
103 {"startTime": 1232.000, "data":{}, "endTime":1235.999, "type":"Program", "children":[
104 {"startTime":1232.001, "type":"BeginFrame","data":{"id":"11"}},
105 {"startTime":1232.002, "endTime":1235.999, "type":"FunctionCall" }
107 {"startTime": 1237.000, "type":"ActivateLayerTree", "data":{"id":"11"}, "thread":"implSide"},
108 {"startTime": 1247.990, "type":"BeginFrame", "thread":"implSide"},
109 {"startTime": 1248.000, "data":{}, "endTime":1291.999, "type":"Program", "children":[
110 {"startTime":1248.001, "type":"BeginFrame", "data":{"id":"12"}},
111 {"startTime":1248.002, "endTime":1291.999, "type":"FunctionCall" }
115 InspectorTest.loadTimelineRecords(records);
117 var timelinePanel = WebInspector.panels.timeline;
118 timelinePanel._onModeChanged(WebInspector.TimelinePanel.Mode.Frames);
119 var overview = timelinePanel._overviewPane;
120 var frameOverview = overview._overviewControl;
121 InspectorTest.addResult("Main thread frames:");
122 frameOverview._mainThreadFrames.forEach(InspectorTest.dumpFrame, InspectorTest);
123 InspectorTest.addResult("Background frames:");
124 frameOverview._backgroundFrames.forEach(InspectorTest.dumpFrame, InspectorTest);
125 InspectorTest.completeTest();
131 <body onload="runTest()">
133 Test timeline records coalescing