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

Side by Side Diff: LayoutTests/svg/animations/smil-leak-element-instances.svg

Issue 220203005: Oilpan: introduce sticky forcedForTesting flag to ensure that a precise (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address comments. Created 6 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 | Annotate | Revision Log
OLDNEW
1 <svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/ 1999/xlink" onload="load()"> 1 <svg id="svg" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/ 1999/xlink" onload="load()">
2 <defs> 2 <defs>
3 <rect id="rect" width="100" height="100" /> 3 <rect id="rect" width="100" height="100" />
4 </defs> 4 </defs>
5 <g id="g"/> 5 <g id="g"/>
6 <text x="50" y="50" id="log"/> 6 <text x="50" y="50" id="log"/>
7 <script xlink:href="../../resources/js-test.js"></script>
7 <script id="script"> 8 <script id="script">
8 <![CDATA[ 9 <![CDATA[
9 10
10 var g = document.getElementById("g"); 11 var g = document.getElementById("g");
11 12
12 function log(message) { 13 function log(message) {
13 var logDiv = document.getElementById('log'); 14 var logDiv = document.getElementById('log');
14 logDiv.appendChild(document.createTextNode(message)); 15 logDiv.appendChild(document.createTextNode(message));
15 } 16 }
16 17
(...skipping 10 matching lines...) Expand all
27 anim.setAttribute("dur", "10.0s"); 28 anim.setAttribute("dur", "10.0s");
28 anim.setAttribute("repeatCount", 1); 29 anim.setAttribute("repeatCount", 1);
29 30
30 use.appendChild(anim); 31 use.appendChild(anim);
31 32
32 return use; 33 return use;
33 } 34 }
34 35
35 function cleanup() { 36 function cleanup() {
36 // Collect garbage before recording starting live node count, in case there are live elements from previous tests. 37 // Collect garbage before recording starting live node count, in case there are live elements from previous tests.
37 GCController.collectAll(); 38 collectGarbage(function() {
38 var originalLiveElements = internals.numberOfLiveNodes(); 39 var originalLiveElements = internals.numberOfLiveNodes();
39 40
40 while (g.hasChildNodes()) 41 while (g.hasChildNodes())
41 g.removeChild(g.lastChild); 42 g.removeChild(g.lastChild);
42 43
43 GCController.collectAll(); 44 collectGarbage(function() {
45 // This is 400 instead of 200 as it creates shadow tree elements.
46 var liveDelta = originalLiveElements - internals.numberOfLiveNodes() - 400;
47 if (liveDelta == 0)
48 log("PASS");
49 else
50 log("FAIL: " + liveDelta + " extra live node(s)");
44 51
45 // This is 400 instead of 200 as it creates shadow tree elements. 52 testRunner.notifyDone();
46 var liveDelta = originalLiveElements - internals.numberOfLiveNodes() - 400; 53 });
47 if (liveDelta == 0) 54 });
48 log("PASS");
49 else
50 log("FAIL: " + liveDelta + " extra live node(s)");
51
52 testRunner.notifyDone();
53 } 55 }
54 56
55 function startTest() { 57 function startTest() {
56 // Hold a reference to rect.x.baseVal on the root instance. 58 // Hold a reference to rect.x.baseVal on the root instance.
57 xBaseVal = document.getElementById("rect").x.baseVal; 59 xBaseVal = document.getElementById("rect").x.baseVal;
58 60
59 for (var i = 0; i < 100; i++) 61 for (var i = 0; i < 100; i++)
60 g.appendChild(createAnimatedRectInstance()); 62 g.appendChild(createAnimatedRectInstance());
61 63
62 setTimeout(cleanup, 0); 64 setTimeout(cleanup, 0);
63 } 65 }
64 66
65 function load() { 67 function load() {
66 if (window.testRunner && window.GCController && window.internals) { 68 if (window.testRunner && window.GCController && window.internals) {
67 testRunner.dumpAsText(); 69 testRunner.dumpAsText();
68 testRunner.waitUntilDone(); 70 testRunner.waitUntilDone();
69 } else { 71 } else {
70 log("This test only works when run with the testRunner, GCController, an d internals available."); 72 log("This test only works when run with the testRunner, GCController, an d internals available.");
71 return; 73 return;
72 } 74 }
73 75
74 setTimeout(startTest, 0); 76 setTimeout(startTest, 0);
75 } 77 }
76 ]]> 78 ]]>
77 </script> 79 </script>
78 </svg> 80 </svg>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698