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

Side by Side Diff: LayoutTests/inspector/profiler/canvas2d/canvas-replay-log-grid.html

Issue 1073863003: DevTools: remove Canvas profiler from DevTools source base. See details in the bug. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: tests gone Created 5 years, 8 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 unified diff | Download patch
OLDNEW
(Empty)
1 <html>
2 <head>
3 <script src="../../../http/tests/inspector/inspector-test.js"></script>
4 <script src="../canvas-profiler-test.js"></script>
5 <script>
6
7 var canvas;
8 var context;
9 var round = 0;
10 var colors = ["red", "green", "blue", "yellow", "black"];
11
12 function createCanvasContext()
13 {
14 canvas = document.getElementById("canvas");
15 context = canvas.getContext("2d");
16 console.assert(context, "Failed to create a canvas context");
17 }
18
19 function doSomeCanvasCalls(repeats)
20 {
21 if (!context)
22 createCanvasContext();
23 repeats = repeats || 1;
24 while (repeats-- > 0) {
25 var offset = 5 * round;
26 context.save();
27 context.beginPath();
28 context.rect(offset, offset, 100 - offset, 100 - offset);
29 context.fillStyle = colors[round % colors.length];
30 context.fill();
31 context.restore();
32 ++round;
33 }
34 }
35
36 function test()
37 {
38 // FIXME: Remove once taken out of experiments. Also a hack below should be removed.
39 Runtime.experiments.enableForTest("canvasInspection");
40
41 var profilesPanel = WebInspector.panels.profiles;
42 var typeRegistry = WebInspector.ProfileTypeRegistry.instance;
43 var profileType = typeRegistry.canvasProfileType;
44
45 // FIXME: This hack is added because ProfilesPanel might have been already c reated before experiment was enabled.
46 // This could be removed once canvas inspection is out of experiments.
47 if (!profileType) {
48 profileType = new WebInspector.CanvasProfileType();
49 typeRegistry.canvasProfileType = profileType;
50 typeRegistry._addProfileType(profileType);
51 profilesPanel._registerProfileType(profileType);
52 }
53
54 profilesPanel._onProfileTypeSelected({data: profileType});
55
56 InspectorTest.override(profileType, "_isSingleFrameMode", function() { retur n false; }, true /*sticky*/);
57 InspectorTest.addSniffer(profileType, "_didStartCapturingFrame", didStartCap turingFrame);
58
59 profileType._onProfilerEnableButtonClick(true);
60 InspectorTest.addSniffer(profileType, "_updateDecorationElement", profilesPa nel.toggleRecordButton.bind(profilesPanel));
61
62 var profileHeader;
63 var profileView;
64 var dataGrid;
65
66 function didStartCapturingFrame(frameId, error, traceLogId)
67 {
68 profileHeader = profileType.getProfiles()[0]
69 profilesPanel.showProfile(profileHeader);
70 InspectorTest.addSniffer(profileHeader, "_updateCapturingStatus", didRec eiveFirstFrame);
71 InspectorTest.evaluateInPage("doSomeCanvasCalls(2)");
72 }
73 function didReceiveFirstFrame(traceLog)
74 {
75 if (!traceLog || traceLog.calls.length < 2) {
76 InspectorTest.addSniffer(profileHeader, "_updateCapturingStatus", di dReceiveFirstFrame);
77 return;
78 }
79 InspectorTest.evaluateInPage("doSomeCanvasCalls(3)", didSecondFrameCalls );
80 }
81 function didSecondFrameCalls()
82 {
83 profileView = profilesPanel.visibleView;
84 dataGrid = profileView._logGrid;
85 InspectorTest.addSniffer(InspectorTest.CanvasAgent, "replayTraceLog", on ReplayTraceLog);
86 profilesPanel.toggleRecordButton();
87 }
88 function onReplayTraceLog(traceLogId, index)
89 {
90 testControlButtons();
91
92 InspectorTest.addResult("");
93 InspectorTest.dumpDataGrid(dataGrid);
94 InspectorTest.completeTest();
95 }
96
97 function testControlButtons()
98 {
99 var rootNode = dataGrid.rootNode();
100 var frameNodes = [];
101 var drawCallGroups = [];
102 var nodes = [];
103 var allNodesFlat = [];
104
105 frameNodes = frameNodes.concat(rootNode.children);
106 frameNodes.forEach(function(frameNode) {
107 drawCallGroups = drawCallGroups.concat(frameNode.children);
108 });
109 drawCallGroups.forEach(function(drawCallGroup) {
110 nodes = nodes.concat(drawCallGroup.children);
111 });
112 for (var node = rootNode; node; node = node.traverseNextNode(false)) {
113 if (node !== rootNode)
114 allNodesFlat.push(node);
115 }
116 allNodesFlat.forEach(function(node) {
117 node.toString = function()
118 {
119 return "Node{" + this.element.textContent + "}";
120 }
121 });
122
123 InspectorTest.addResult("");
124 InspectorTest.addResult("Total frames: " + frameNodes.length);
125 InspectorTest.addResult("Total draw call groups: " + drawCallGroups.leng th);
126 InspectorTest.addResult("Total calls: " + nodes.length);
127 InspectorTest.addResult("Total grid nodes: " + allNodesFlat.length);
128 InspectorTest.addResult("");
129
130 InspectorTest.assertEquals(frameNodes.peekLast(), dataGrid.selectedNode, "Expected last frame node before testing control buttons");
131
132 InspectorTest.addResult("Testing ReplayFirstStepClick");
133 profileView._onReplayFirstStepClick();
134 InspectorTest.assertEquals(frameNodes[0], dataGrid.selectedNode);
135
136 InspectorTest.addResult("Testing ReplayNextStepClick");
137 for (var i = 0; i < nodes.length + 5; ++i) {
138 profileView._onReplayStepClick(true);
139 InspectorTest.assertEquals(nodes[i] || nodes.peekLast(), dataGrid.se lectedNode, "error on index " + i);
140 }
141
142 InspectorTest.addResult("Testing ReplayPreviousStepClick");
143 for (var i = nodes.length - 2; i >= -5; --i) {
144 profileView._onReplayStepClick(false);
145 InspectorTest.assertEquals(nodes[i] || nodes[0], dataGrid.selectedNo de, "error on index " + i);
146 }
147
148 allNodesFlat[0].revealAndSelect();
149 InspectorTest.assertEquals(allNodesFlat[0], dataGrid.selectedNode, "Expe cted to select the first node before testing ReplayNextDrawingCallClick");
150
151 InspectorTest.addResult("Testing ReplayNextDrawingCallClick starting on a frame node");
152 for (var i = 1; i < frameNodes.length + 5; ++i) {
153 profileView._onReplayDrawingCallClick(true);
154 InspectorTest.assertEquals(frameNodes[i] || allNodesFlat.peekLast(), dataGrid.selectedNode, "error on index " + i);
155 }
156
157 frameNodes.peekLast().revealAndSelect();
158 InspectorTest.assertEquals(frameNodes.peekLast(), dataGrid.selectedNode, "Expected to select last frame node");
159
160 InspectorTest.addResult("Testing ReplayPreviousDrawingCallClick starting on a frame node");
161 for (var i = frameNodes.length - 2; i >= -5; --i) {
162 profileView._onReplayDrawingCallClick(false);
163 InspectorTest.assertEquals(frameNodes[i] || frameNodes[0], dataGrid. selectedNode, "error on index " + i);
164 }
165
166 drawCallGroups[0].revealAndSelect();
167 InspectorTest.assertEquals(drawCallGroups[0], dataGrid.selectedNode, "Ex pected to move to the first draw call group");
168
169 InspectorTest.addResult("Testing ReplayNextDrawingCallClick starting on a draw call group");
170 var expected = [drawCallGroups[1], frameNodes[1], allNodesFlat.peekLast( )];
171 for (var i = 0; i < expected.length + 5; ++i) {
172 profileView._onReplayDrawingCallClick(true);
173 InspectorTest.assertEquals(expected[i] || expected.peekLast(), dataG rid.selectedNode, "error on index " + i);
174 }
175
176 profileView._onReplayLastStepClick();
177 InspectorTest.assertEquals(allNodesFlat.peekLast(), dataGrid.selectedNod e, "Expected to move to the last call");
178
179 InspectorTest.addResult("Testing ReplayPreviousDrawingCallClick starting on a call node");
180 var expected = [frameNodes[0], frameNodes[1], drawCallGroups[2], drawCal lGroups[3], drawCallGroups[4], nodes[28]];
181 for (var i = expected.length - 1; i >= -5; --i) {
182 profileView._onReplayDrawingCallClick(false);
183 InspectorTest.assertEquals(expected[i] || expected[0], dataGrid.sele ctedNode, "error on index " + i);
184 }
185
186 nodes[15].revealAndSelect();
187 InspectorTest.assertEquals(nodes[15], dataGrid.selectedNode, "Expected t o select node #20");
188
189 InspectorTest.addResult("Testing ReplayNextDrawingCallClick starting on a call node");
190 var expected = [nodes[16], drawCallGroups[3], drawCallGroups[4], allNode sFlat.peekLast()];
191 for (var i = 0; i < expected.length + 5; ++i) {
192 profileView._onReplayDrawingCallClick(true);
193 InspectorTest.assertEquals(expected[i] || expected.peekLast(), dataG rid.selectedNode, "error on index " + i);
194 }
195 }
196 }
197
198 </script>
199 </head>
200 <body onload="runTest()">
201 <p>
202 Tests replay log grid.
203 </p>
204 <a href="https://bugs.webkit.org/show_bug.cgi?id=109592">Bug 109592</a>
205 <canvas id="canvas"></canvas>
206 </body>
207 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698