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>
10 function doActions(callback)
12 document.getElementById("a").style.visibility = "visible";
13 requestAnimationFrame(function() {
14 testRunner.displayAsyncThen(callback);
22 InspectorTest.invokeWithTracing("doActions", onTracingComplete, "disabled-by-default-blink.graphics_context_annotations");
24 var inFlightPictures = 0;
25 function onTracingComplete()
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.Paint)
35 processPicture(event.picture);
37 if (!inFlightPictures)
38 InspectorTest.completeTest();
41 function processPicture(picture)
43 WebInspector.PaintProfilerSnapshot.load(WebInspector.targetManager.targets()[0], picture, onSnapshotLoaded);
46 function onSnapshotLoaded(snapshot)
48 snapshot.commandLog(onGotLog);
51 function onGotLog(log)
54 for (var i = 0; i < log.length; ++i) {
55 if (!log[i].annotations)
57 var nodeId = Number(log[i].annotations["INSPECTOR_ID"]);
59 seenNodes[nodeId] = true;
61 var requestedNodes = Object.keys(seenNodes).map(function(value) { return Number(value); });
62 var domModel = WebInspector.targetManager.mainTarget().domModel;
63 WebInspector.targetManager.mainTarget().domModel.pushNodesByBackendIdsToFrontend(requestedNodes, onNodesResolved.bind(this, log, requestedNodes));
66 function onNodesResolved(log, requestedNodes, resolvedNodes)
68 InspectorTest.assertEquals(requestedNodes.length, resolvedNodes.length);
70 var domModel = WebInspector.targetManager.mainTarget().domModel;
71 for (var i = 0; i < requestedNodes.length; ++i) {
73 nodeMap[requestedNodes[i]] = domModel.nodeForId(resolvedNodes[i]);
75 InspectorTest.addResult("Paint command log:");
76 for (var i = 0; i < log.length; ++i) {
77 if (!log[i].annotations)
79 if (!/^draw/.test(log[i].method))
81 var nodeId = Number(log[i].annotations["INSPECTOR_ID"]);
84 InspectorTest.addResult(" " + WebInspector.DOMPresentationUtils.simpleSelector(nodeMap[nodeId]) + " " + log[i].method);
86 if (!--inFlightPictures)
87 InspectorTest.completeTest();
95 <body onload="runTestAfterDisplay()">
97 Tests snapshot command log for trace-based Timeline paint event
99 <div id="a" style="visibility:hidden; -webkit-transform: translateZ(0px); background-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">
103 <rect id="e" x="0" y="0" width="10" height="10" style="opacity:0.5"/>