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

Unified Diff: LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html

Issue 727253002: Add a test of invalidations with multiple RecalcStyle events (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html
diff --git a/LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html b/LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html
index 61fceeac219c20529d32d0de23505125645c4334..05bd600c0ed331278b0818df6e706112f209bcdd 100644
--- a/LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html
+++ b/LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations.html
@@ -4,18 +4,40 @@
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="../../http/tests/inspector/timeline-test.js"></script>
<script>
-function display(callback)
+function changeStylesAndDisplay(callback)
{
requestAnimationFrame(function() {
- document.body.style.backgroundColor = "peachpuff";
- document.getElementById("testElement").style.width = "100px";
+ document.getElementById("testElementOne").style.color = "red";
+ document.getElementById("testElementTwo").style.color = "blue";
var forceLayout = document.body.offsetTop;
if (window.testRunner)
testRunner.displayAsyncThen(callback);
});
}
-function updateSubframeAndDisplay(callback)
+function changeMultipleStylesAndDisplay(callback)
+{
+ requestAnimationFrame(function() {
+ var elementOne = document.getElementById("testElementOne");
+ var elementTwo = document.getElementById("testElementTwo");
+ var elementThree = document.getElementById("testElementThree");
+
+ elementOne.style.backgroundColor = "orangered";
+ var forceStyleRecalc1 = document.body.offsetTop;
+ elementOne.style.color = "mediumvioletred";
+ elementTwo.style.color = "deepskyblue";
+ var forceStyleRecalc2 = document.body.offsetTop;
+ elementOne.style.color = "tomato";
+ elementTwo.style.color = "mediumslateblue";
+ elementThree.style.color = "mediumspringgreen";
+ var forceStyleRecalc3 = document.body.offsetTop;
+
+ if (window.testRunner)
+ testRunner.displayAsyncThen(callback);
+ });
+}
+
+function changeSubframeStylesAndDisplay(callback)
{
requestAnimationFrame(function() {
frames[0].document.body.style.backgroundColor = "papayawhip";
@@ -35,37 +57,81 @@ function test()
InspectorTest.runTestSuite([
function testLocalFrame(next)
{
- InspectorTest.invokeAsyncWithTimeline("display", function() {
+ InspectorTest.invokeAsyncWithTimeline("changeStylesAndDisplay", function() {
var record = InspectorTest.findFirstTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles);
var invalidations = record._event.invalidationTrackingEvents;
InspectorTest.assertEquals(invalidations.length, 2);
InspectorTest.assertEquals(invalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
- InspectorTest.assertEquals(invalidations[0].nodeName, "BODY");
+ InspectorTest.assertEquals(invalidations[0].nodeName, "DIV id='testElementOne'");
InspectorTest.assertEquals(invalidations[0].reason, "StyleSheetChange");
InspectorTest.assertGreaterOrEqual(invalidations[0].stackTrace.length, 1);
InspectorTest.assertEquals(invalidations[1].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
- InspectorTest.assertEquals(invalidations[1].nodeName, "DIV id='testElement'");
+ InspectorTest.assertEquals(invalidations[1].nodeName, "DIV id='testElementTwo'");
InspectorTest.assertEquals(invalidations[1].reason, "StyleSheetChange");
InspectorTest.assertGreaterOrEqual(invalidations[1].stackTrace.length, 1);
- InspectorTest.invokeAsyncWithTimeline("updateSubframeAndDisplay", next);
+ next();
+ });
+ },
+
+ function multipleStyleRecalcs(next)
+ {
+ InspectorTest.invokeAsyncWithTimeline("changeMultipleStylesAndDisplay", function() {
+ var firstRecord = InspectorTest.findTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles, 0);
+ var firstInvalidations = firstRecord._event.invalidationTrackingEvents;
+ InspectorTest.assertEquals(firstInvalidations.length, 1);
+ InspectorTest.assertEquals(firstInvalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(firstInvalidations[0].nodeName, "DIV id='testElementOne'");
+ InspectorTest.assertEquals(firstInvalidations[0].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(firstInvalidations[0].stackTrace.length, 1);
+
+ var secondRecord = InspectorTest.findTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles, 1);
+ var secondInvalidations = secondRecord._event.invalidationTrackingEvents;
+ InspectorTest.assertEquals(secondInvalidations.length, 2);
+ InspectorTest.assertEquals(secondInvalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(secondInvalidations[0].nodeName, "DIV id='testElementOne'");
+ InspectorTest.assertEquals(secondInvalidations[0].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(secondInvalidations[0].stackTrace.length, 1);
+ InspectorTest.assertEquals(secondInvalidations[1].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(secondInvalidations[1].nodeName, "DIV id='testElementTwo'");
+ InspectorTest.assertEquals(secondInvalidations[1].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(secondInvalidations[1].stackTrace.length, 1);
+
+ var thirdRecord = InspectorTest.findTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles, 2);
+ var thirdInvalidations = thirdRecord._event.invalidationTrackingEvents;
+ InspectorTest.assertEquals(thirdInvalidations.length, 3);
+ InspectorTest.assertEquals(thirdInvalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(thirdInvalidations[0].nodeName, "DIV id='testElementOne'");
+ InspectorTest.assertEquals(thirdInvalidations[0].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(thirdInvalidations[0].stackTrace.length, 1);
+ InspectorTest.assertEquals(thirdInvalidations[1].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(thirdInvalidations[1].nodeName, "DIV id='testElementTwo'");
+ InspectorTest.assertEquals(thirdInvalidations[1].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(thirdInvalidations[1].stackTrace.length, 1);
+ InspectorTest.assertEquals(thirdInvalidations[2].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(thirdInvalidations[2].nodeName, "DIV id='testElementThree'");
+ InspectorTest.assertEquals(thirdInvalidations[2].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(thirdInvalidations[2].stackTrace.length, 1);
+ next();
});
},
function testSubframe(next)
{
- var record = InspectorTest.findFirstTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles);
+ InspectorTest.invokeAsyncWithTimeline("changeSubframeStylesAndDisplay", function() {
+ var record = InspectorTest.findFirstTimelineRecord(WebInspector.TimelineModel.RecordType.RecalculateStyles);
- var invalidations = record._event.invalidationTrackingEvents;
- InspectorTest.assertEquals(invalidations.length, 2);
- InspectorTest.assertEquals(invalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
- InspectorTest.assertEquals(invalidations[0].nodeName, "BODY");
- InspectorTest.assertEquals(invalidations[0].reason, "StyleSheetChange");
- InspectorTest.assertGreaterOrEqual(invalidations[0].stackTrace.length, 1);
- InspectorTest.assertEquals(invalidations[1].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
- InspectorTest.assertEquals(invalidations[1].nodeName, "DIV");
- InspectorTest.assertEquals(invalidations[1].reason, "StyleSheetChange");
- InspectorTest.assertGreaterOrEqual(invalidations[1].stackTrace.length, 1);
- next();
+ var invalidations = record._event.invalidationTrackingEvents;
+ InspectorTest.assertEquals(invalidations.length, 2);
+ InspectorTest.assertEquals(invalidations[0].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(invalidations[0].nodeName, "BODY");
+ InspectorTest.assertEquals(invalidations[0].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(invalidations[0].stackTrace.length, 1);
+ InspectorTest.assertEquals(invalidations[1].type, WebInspector.TimelineModel.RecordType.StyleRecalcInvalidationTracking);
+ InspectorTest.assertEquals(invalidations[1].nodeName, "DIV");
+ InspectorTest.assertEquals(invalidations[1].reason, "StyleSheetChange");
+ InspectorTest.assertGreaterOrEqual(invalidations[1].stackTrace.length, 1);
+ next();
+ });
}
]);
}
@@ -73,7 +139,7 @@ function test()
</head>
<body onload="runTest()">
<p>Tests the Timeline API instrumentation of style recalc events with invalidations.</p>
-<div id="testElement">PASS</div>
+<div id="testElementOne">PASS</div><div id="testElementTwo">PASS</div><div id="testElementThree">PASS</div>
<iframe src="resources/timeline-iframe-paint.html" style="position: absolute; left: 40px; top: 40px; width: 100px; height: 100px; border: none"></iframe>
</body>
</html>
« no previous file with comments | « no previous file | LayoutTests/inspector/tracing/timeline-style-recalc-with-invalidations-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698