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

Side by Side Diff: third_party/WebKit/LayoutTests/paint/invalidation/resources/text-based-repaint.js

Issue 2399193002: Mark children of an SVG root as needing paint invalidation checking on resize. (Closed)
Patch Set: Created 4 years, 2 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
1 // Asynchronous tests should manually call finishRepaintTest at the appropriate 1 // Asynchronous tests should manually call finishRepaintTest at the appropriate
2 // time. 2 // time.
3 window.testIsAsync = false; 3 window.testIsAsync = false;
4 window.outputRepaintRects = true; 4 window.outputRepaintRects = true;
5 window.outputLayerList = false;
5 6
6 // All repaint tests are asynchronous. 7 // All repaint tests are asynchronous.
7 if (window.testRunner) 8 if (window.testRunner)
8 testRunner.waitUntilDone(); 9 testRunner.waitUntilDone();
9 10
10 if (window.internals) { 11 if (window.internals) {
11 internals.settings.setUseDefaultImageInterpolationQuality(true); 12 internals.settings.setUseDefaultImageInterpolationQuality(true);
12 internals.runtimeFlags.slimmingPaintUnderInvalidationCheckingEnabled = true; 13 internals.runtimeFlags.paintUnderInvalidationCheckingEnabled = true;
13 } 14 }
14 15
16 // Add string names of objects that should be invalidated here. If you use this feature,
17 // you must also include testharness.js.
18 window.expectedObjectInvalidations = [];
19
15 function runRepaintTest() 20 function runRepaintTest()
16 { 21 {
17 if (!window.testRunner || !window.internals) { 22 if (!window.testRunner || !window.internals) {
18 setTimeout(repaintTest, 500); 23 setTimeout(repaintTest, 500);
19 return; 24 return;
20 } 25 }
21 26
22 if (window.enablePixelTesting) 27 if (window.enablePixelTesting)
23 testRunner.dumpAsTextWithPixelResults(); 28 testRunner.dumpAsTextWithPixelResults();
24 else 29 else
(...skipping 14 matching lines...) Expand all
39 } 44 }
40 45
41 function forceStyleRecalc() 46 function forceStyleRecalc()
42 { 47 {
43 if (document.body) 48 if (document.body)
44 document.body.clientTop; 49 document.body.clientTop;
45 else if (document.documentElement) 50 else if (document.documentElement)
46 document.documentElement.clientTop; 51 document.documentElement.clientTop;
47 } 52 }
48 53
54 function checkObjectPaintInvalidations(layersWithInvalidationsText)
55 {
56 var layersWithInvalidations = JSON.parse(layersWithInvalidationsText);
57 var objectNameSet = new Set();
58 if (layersWithInvalidations["objectPaintInvalidations"]) {
59 layersWithInvalidations["objectPaintInvalidations"].forEach(function(obj ) {
60 objectNameSet.add(obj["object"]);
61 });
62 }
63
64 window.expectedObjectInvalidations.forEach(function(objectName) {
65 assert_true(objectNameSet.has(objectName), "Expected object to be invali dated, but it was not: '" + objectName + "'");
66 });
67 }
68
49 function finishRepaintTest() 69 function finishRepaintTest()
50 { 70 {
51 if (!window.testRunner || !window.internals) 71 if (!window.testRunner || !window.internals)
52 return; 72 return;
53 73
54 // Force a style recalc. 74 // Force a style recalc.
55 forceStyleRecalc(); 75 forceStyleRecalc();
56 76
57 var flags = window.internals.LAYER_TREE_INCLUDES_PAINT_INVALIDATIONS; 77 var flags = window.internals.LAYER_TREE_INCLUDES_PAINT_INVALIDATIONS;
58 78
59 if (window.layerTreeAsTextAdditionalFlags) 79 if (window.layerTreeAsTextAdditionalFlags)
60 flags |= window.layerTreeAsTextAdditionalFlags; 80 flags |= window.layerTreeAsTextAdditionalFlags;
61 81
62 var repaintRects = window.internals.layerTreeAsText(document, flags); 82 if (window.outputLayerList)
83 flags |= window.internals.OUTPUT_CHILDREN_AS_LAYER_LIST;
84
85 var layersWithInvalidationsText = window.internals.layerTreeAsText(document, flags);
86
87 checkObjectPaintInvalidations(layersWithInvalidationsText);
63 88
64 internals.stopTrackingRepaints(document); 89 internals.stopTrackingRepaints(document);
65 90
66 // Play nice with JS tests which may want to print out assert results. 91 // Play nice with JS tests which may want to print out assert results.
67 if (window.isJsTest) 92 if (window.isJsTest)
68 window.outputRepaintRects = false; 93 window.outputRepaintRects = false;
69 94
70 if (window.outputRepaintRects) 95 if (window.outputRepaintRects)
71 testRunner.setCustomTextOutput(repaintRects); 96 testRunner.setCustomTextOutput(layersWithInvalidationsText);
72 97
73 if (window.afterTest) 98 if (window.afterTest)
74 window.afterTest(); 99 window.afterTest();
75 100
76 // Play nice with async JS tests which want to notifyDone themselves. 101 // Play nice with async JS tests which want to notifyDone themselves.
77 if (!window.jsTestIsAsync) 102 if (!window.jsTestIsAsync)
78 testRunner.notifyDone(); 103 testRunner.notifyDone();
79 } 104 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698