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

Side by Side Diff: LayoutTests/fast/css/invalidation/targeted-class-style-invalidation.html

Issue 1349543004: CSS: Avoid invalidating style when only descendants need updating (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: invalidatesSelf Created 5 years, 3 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 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../../../resources/js-test.js"></script> 2 <script src="../../../resources/js-test.js"></script>
3 3
4 <style> 4 <style>
5 div { width: 100px } 5 div { width: 100px }
6 .outer .inner { width: 200px } 6 .outer .inner { width: 200px }
7 .outer2 { width: 150px } 7 .outer2 { width: 150px }
8 .outer3.nomatch {} 8 .outer3.nomatch {}
9 </style> 9 </style>
10 10
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 38
39 var outer = document.getElementById('outer'); 39 var outer = document.getElementById('outer');
40 var inner = document.getElementById('inner'); 40 var inner = document.getElementById('inner');
41 var outer2 = document.getElementById('outer2'); 41 var outer2 = document.getElementById('outer2');
42 var outer3 = document.getElementById('outer3'); 42 var outer3 = document.getElementById('outer3');
43 43
44 // Style recalc should happen on "inner" and "outer", but not "inner2" or "mid". 44 // Style recalc should happen on "inner" and "outer", but not "inner2" or "mid".
45 outer.offsetTop; 45 outer.offsetTop;
46 outer.className = 'outer'; 46 outer.className = 'outer';
47 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "2"); 47 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
48 shouldBe("getComputedStyle(inner).width", '"200px"'); 48 shouldBe("getComputedStyle(inner).width", '"200px"');
49 49
50 // Style recalc should happen on "inner", but not "innerChild". 50 // Style recalc should happen on "inner", but not "innerChild".
51 inner.offsetTop; 51 inner.offsetTop;
52 inner.className = ''; 52 inner.className = '';
53 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1"); 53 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
54 shouldBe("getComputedStyle(inner).width", '"100px"'); 54 shouldBe("getComputedStyle(inner).width", '"100px"');
55 55
56 // Style recalc should happen on "outer2", but not "inner3". 56 // Style recalc should happen on "outer2", but not "inner3".
57 outer2.offsetTop; 57 outer2.offsetTop;
58 outer2.className = 'outer2'; 58 outer2.className = 'outer2';
59 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1"); 59 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
60 shouldBe("getComputedStyle(outer2).width", '"150px"'); 60 shouldBe("getComputedStyle(outer2).width", '"150px"');
61 61
62 // Style recalc should happen on "outer3", but none of its children. 62 // Style recalc should happen on "outer3", but none of its children.
63 outer3.offsetTop; 63 outer3.offsetTop;
64 outer3.className = 'outer3'; 64 outer3.className = 'outer3';
65 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1"); 65 shouldBe("internals.updateStyleAndReturnAffectedElementCount()", "1");
66 </script> 66 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698