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

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

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

Powered by Google App Engine
This is Rietveld 408576698