OLD | NEW |
| (Empty) |
1 <html> | |
2 <head> | |
3 <style> | |
4 </style> | |
5 <script src="../../../../../http/tests/inspector/inspector-test.js"></script> | |
6 <script src="../../../../../http/tests/inspector/timeline-test.js"></script> | |
7 <script src="../../../../../inspector/tracing-test.js"></script> | |
8 <script> | |
9 | |
10 function doActions(callback) | |
11 { | |
12 document.getElementById("a").style.visibility = "visible"; | |
13 requestAnimationFrame(function() { | |
14 testRunner.displayAsyncThen(callback); | |
15 }); | |
16 } | |
17 | |
18 function test() | |
19 { | |
20 var imageCount = 0; | |
21 | |
22 InspectorTest.invokeWithTracing("doActions", onTracingComplete, "disabled-by
-default-blink.graphics_context_annotations"); | |
23 | |
24 var inFlightPictures = 0; | |
25 function onTracingComplete() | |
26 { | |
27 var events = InspectorTest.tracingTimelineModel.inspectedTargetEvents(); | |
28 for (var i = 0; i < events.length; ++i) { | |
29 var event = events[i]; | |
30 if (event.name !== WebInspector.TracingTimelineModel.RecordType.Pain
t) | |
31 continue; | |
32 if (!event.picture) | |
33 continue; | |
34 ++inFlightPictures; | |
35 processPicture(event.picture); | |
36 } | |
37 if (!inFlightPictures) | |
38 InspectorTest.completeTest(); | |
39 } | |
40 | |
41 function processPicture(picture) | |
42 { | |
43 WebInspector.PaintProfilerSnapshot.load(WebInspector.targetManager.targe
ts()[0], picture, onSnapshotLoaded); | |
44 } | |
45 | |
46 function onSnapshotLoaded(snapshot) | |
47 { | |
48 snapshot.commandLog(onGotLog); | |
49 } | |
50 | |
51 function onGotLog(log) | |
52 { | |
53 var seenNodes = {}; | |
54 for (var i = 0; i < log.length; ++i) { | |
55 if (!log[i].annotations) | |
56 continue; | |
57 var nodeId = Number(log[i].annotations["INSPECTOR_ID"]); | |
58 if (nodeId) | |
59 seenNodes[nodeId] = true; | |
60 } | |
61 var requestedNodes = Object.keys(seenNodes).map(function(value) { return
Number(value); }); | |
62 var domModel = WebInspector.targetManager.mainTarget().domModel; | |
63 WebInspector.targetManager.mainTarget().domModel.pushNodesByBackendIdsTo
Frontend(requestedNodes, onNodesResolved.bind(this, log, requestedNodes)); | |
64 } | |
65 | |
66 function onNodesResolved(log, requestedNodes, resolvedNodes) | |
67 { | |
68 InspectorTest.assertEquals(requestedNodes.length, resolvedNodes.length); | |
69 var nodeMap = {}; | |
70 var domModel = WebInspector.targetManager.mainTarget().domModel; | |
71 for (var i = 0; i < requestedNodes.length; ++i) { | |
72 if (resolvedNodes[i]) | |
73 nodeMap[requestedNodes[i]] = domModel.nodeForId(resolvedNodes[i]
); | |
74 } | |
75 InspectorTest.addResult("Paint command log:"); | |
76 for (var i = 0; i < log.length; ++i) { | |
77 if (!log[i].annotations) | |
78 continue; | |
79 if (!/^draw/.test(log[i].method)) | |
80 continue; | |
81 var nodeId = Number(log[i].annotations["INSPECTOR_ID"]); | |
82 if (!nodeId) | |
83 continue; | |
84 InspectorTest.addResult(" " + WebInspector.DOMPresentationUtils.s
impleSelector(nodeMap[nodeId]) + " " + log[i].method); | |
85 } | |
86 if (!--inFlightPictures) | |
87 InspectorTest.completeTest(); | |
88 } | |
89 | |
90 } | |
91 | |
92 </script> | |
93 </head> | |
94 | |
95 <body onload="runTestAfterDisplay()"> | |
96 <p> | |
97 Tests snapshot command log for trace-based Timeline paint event | |
98 </p> | |
99 <div id="a" style="visibility:hidden; -webkit-transform: translateZ(0px); backgr
ound-color:blue; width:100px; height:100px;"> | |
100 <div id="b" style="width:50px; height:50px; background-color:red;"></div> | |
101 <img id="c" src="../timeline/resources/test.png"> | |
102 <svg id="d"> | |
103 <rect id="e" x="0" y="0" width="10" height="10" style="opacity:0.5"/> | |
104 </svg> | |
105 </div> | |
106 </body> | |
107 </html> | |
OLD | NEW |