| OLD | NEW |
| 1 <!DOCTYPE HTML> | 1 <!DOCTYPE HTML> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <script src="../../http/tests/inspector/inspector-test.js"></script> | 4 <script src="../../http/tests/inspector/inspector-test.js"></script> |
| 5 <script src="../../http/tests/inspector/timeline-test.js"></script> | 5 <script src="../../http/tests/inspector/timeline-test.js"></script> |
| 6 <script> | 6 <script> |
| 7 function changeStylesAndDisplay(callback) | 7 function changeStylesAndDisplay(callback) |
| 8 { | 8 { |
| 9 requestAnimationFrame(function() { | 9 requestAnimationFrame(function() { |
| 10 document.getElementById("testElementOne").className = "red"; | 10 document.getElementById("testElementOne").className = "red"; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 { | 60 { |
| 61 var currentPanel = WebInspector.inspectorView.currentPanel(); | 61 var currentPanel = WebInspector.inspectorView.currentPanel(); |
| 62 InspectorTest.assertEquals(currentPanel._panelName, "timeline", "Current pan
el should be the timeline."); | 62 InspectorTest.assertEquals(currentPanel._panelName, "timeline", "Current pan
el should be the timeline."); |
| 63 Runtime.experiments.enableForTest("timelineInvalidationTracking"); | 63 Runtime.experiments.enableForTest("timelineInvalidationTracking"); |
| 64 | 64 |
| 65 InspectorTest.runTestSuite([ | 65 InspectorTest.runTestSuite([ |
| 66 function testLocalFrame(next) | 66 function testLocalFrame(next) |
| 67 { | 67 { |
| 68 InspectorTest.invokeAsyncWithTimeline("changeStylesAndDisplay", func
tion() { | 68 InspectorTest.invokeAsyncWithTimeline("changeStylesAndDisplay", func
tion() { |
| 69 var record = InspectorTest.findFirstTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles); | 69 var record = InspectorTest.findFirstTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles); |
| 70 var invalidations = record._event.invalidationTrackingEvents; | 70 InspectorTest.addArray(record._event.invalidationTrackingEvents,
InspectorTest.InvalidationFormatters, "", "first recalculate styles"); |
| 71 InspectorTest.assertEquals(invalidations.length, 2); | |
| 72 InspectorTest.assertEquals(invalidations[0].type, WebInspector.T
imelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 73 InspectorTest.assertEquals(invalidations[0].nodeName, "DIV id='t
estElementOne' class='red'"); | |
| 74 InspectorTest.assertEquals(invalidations[0].cause.reason, "Style
Invalidator"); | |
| 75 InspectorTest.assertGreaterOrEqual(invalidations[0].cause.stackT
race.length, 1); | |
| 76 InspectorTest.assertEquals(invalidations[1].type, WebInspector.T
imelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 77 InspectorTest.assertEquals(invalidations[1].nodeName, "DIV id='t
estElementTwo' class='red'"); | |
| 78 InspectorTest.assertEquals(invalidations[1].cause.reason, "Style
Invalidator"); | |
| 79 InspectorTest.assertGreaterOrEqual(invalidations[1].cause.stackT
race.length, 1); | |
| 80 next(); | 71 next(); |
| 81 }); | 72 }); |
| 82 }, | 73 }, |
| 83 | 74 |
| 84 function multipleStyleRecalcs(next) | 75 function multipleStyleRecalcs(next) |
| 85 { | 76 { |
| 86 InspectorTest.invokeAsyncWithTimeline("changeMultipleStylesAndDispla
y", function() { | 77 InspectorTest.invokeAsyncWithTimeline("changeMultipleStylesAndDispla
y", function() { |
| 87 var firstRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 0); | 78 var firstRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 0); |
| 88 var firstInvalidations = firstRecord._event.invalidationTracking
Events; | 79 InspectorTest.addArray(firstRecord._event.invalidationTrackingEv
ents, InspectorTest.InvalidationFormatters, "", "first recalculate styles"); |
| 89 InspectorTest.assertEquals(firstInvalidations.length, 1); | |
| 90 InspectorTest.assertEquals(firstInvalidations[0].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 91 InspectorTest.assertEquals(firstInvalidations[0].nodeName, "DIV
id='testElementOne' class='green'"); | |
| 92 InspectorTest.assertEquals(firstInvalidations[0].cause.reason, "
StyleInvalidator"); | |
| 93 InspectorTest.assertGreaterOrEqual(firstInvalidations[0].cause.s
tackTrace.length, 1); | |
| 94 | 80 |
| 95 var secondRecord = InspectorTest.findTimelineRecord(WebInspector
.TimelineModel.RecordType.RecalculateStyles, 1); | 81 var secondRecord = InspectorTest.findTimelineRecord(WebInspector
.TimelineModel.RecordType.RecalculateStyles, 1); |
| 96 var secondInvalidations = secondRecord._event.invalidationTracki
ngEvents; | 82 InspectorTest.addArray(secondRecord._event.invalidationTrackingE
vents, InspectorTest.InvalidationFormatters, "", "second recalculate styles"); |
| 97 InspectorTest.assertEquals(secondInvalidations.length, 2); | |
| 98 InspectorTest.assertEquals(secondInvalidations[0].type, WebInspe
ctor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 99 InspectorTest.assertEquals(secondInvalidations[0].nodeName, "DIV
id='testElementOne' class='blue'"); | |
| 100 InspectorTest.assertEquals(secondInvalidations[0].cause.reason,
"StyleInvalidator"); | |
| 101 InspectorTest.assertGreaterOrEqual(secondInvalidations[0].cause.
stackTrace.length, 1); | |
| 102 InspectorTest.assertEquals(secondInvalidations[1].type, WebInspe
ctor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 103 InspectorTest.assertEquals(secondInvalidations[1].nodeName, "DIV
id='testElementTwo' class='blue'"); | |
| 104 InspectorTest.assertEquals(secondInvalidations[1].cause.reason,
"StyleInvalidator"); | |
| 105 InspectorTest.assertGreaterOrEqual(secondInvalidations[1].cause.
stackTrace.length, 1); | |
| 106 | 83 |
| 107 var thirdRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 2); | 84 var thirdRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 2); |
| 108 var thirdInvalidations = thirdRecord._event.invalidationTracking
Events; | 85 InspectorTest.addArray(thirdRecord._event.invalidationTrackingEv
ents, InspectorTest.InvalidationFormatters, "", "third recalculate styles"); |
| 109 InspectorTest.assertEquals(thirdInvalidations.length, 3); | |
| 110 InspectorTest.assertEquals(thirdInvalidations[0].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 111 InspectorTest.assertEquals(thirdInvalidations[0].nodeName, "DIV
id='testElementOne' class='snow'"); | |
| 112 InspectorTest.assertEquals(thirdInvalidations[0].cause.reason, "
StyleInvalidator"); | |
| 113 InspectorTest.assertGreaterOrEqual(thirdInvalidations[0].cause.s
tackTrace.length, 1); | |
| 114 InspectorTest.assertEquals(thirdInvalidations[1].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 115 InspectorTest.assertEquals(thirdInvalidations[1].nodeName, "DIV
id='testElementTwo' class='snow'"); | |
| 116 InspectorTest.assertEquals(thirdInvalidations[1].cause.reason, "
StyleInvalidator"); | |
| 117 InspectorTest.assertGreaterOrEqual(thirdInvalidations[1].cause.s
tackTrace.length, 1); | |
| 118 InspectorTest.assertEquals(thirdInvalidations[2].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 119 InspectorTest.assertEquals(thirdInvalidations[2].nodeName, "DIV
id='testElementThree' class='snow'"); | |
| 120 InspectorTest.assertEquals(thirdInvalidations[2].cause.reason, "
StyleInvalidator"); | |
| 121 InspectorTest.assertGreaterOrEqual(thirdInvalidations[2].cause.s
tackTrace.length, 1); | |
| 122 next(); | 86 next(); |
| 123 }); | 87 }); |
| 124 }, | 88 }, |
| 125 | 89 |
| 126 function testSubframe(next) | 90 function testSubframe(next) |
| 127 { | 91 { |
| 128 InspectorTest.invokeAsyncWithTimeline("changeMultipleSubframeStylesA
ndDisplay", function() { | 92 InspectorTest.invokeAsyncWithTimeline("changeMultipleSubframeStylesA
ndDisplay", function() { |
| 129 var firstRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 0); | 93 var firstRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 0); |
| 130 var firstInvalidations = firstRecord._event.invalidationTracking
Events; | 94 InspectorTest.addArray(firstRecord._event.invalidationTrackingEv
ents, InspectorTest.InvalidationFormatters, "", "first recalculate styles"); |
| 131 InspectorTest.assertEquals(firstInvalidations.length, 1); | |
| 132 InspectorTest.assertEquals(firstInvalidations[0].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 133 InspectorTest.assertEquals(firstInvalidations[0].nodeName, "DIV
id='testElementOne' class='green'"); | |
| 134 InspectorTest.assertEquals(firstInvalidations[0].cause.reason, "
StyleInvalidator"); | |
| 135 InspectorTest.assertGreaterOrEqual(firstInvalidations[0].cause.s
tackTrace.length, 1); | |
| 136 | 95 |
| 137 var secondRecord = InspectorTest.findTimelineRecord(WebInspector
.TimelineModel.RecordType.RecalculateStyles, 1); | 96 var secondRecord = InspectorTest.findTimelineRecord(WebInspector
.TimelineModel.RecordType.RecalculateStyles, 1); |
| 138 var secondInvalidations = secondRecord._event.invalidationTracki
ngEvents; | 97 InspectorTest.addArray(secondRecord._event.invalidationTrackingE
vents, InspectorTest.InvalidationFormatters, "", "second recalculate styles"); |
| 139 InspectorTest.assertEquals(secondInvalidations.length, 2); | |
| 140 InspectorTest.assertEquals(secondInvalidations[0].type, WebInspe
ctor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 141 InspectorTest.assertEquals(secondInvalidations[0].nodeName, "DIV
id='testElementOne' class='blue'"); | |
| 142 InspectorTest.assertEquals(secondInvalidations[0].cause.reason,
"StyleInvalidator"); | |
| 143 InspectorTest.assertGreaterOrEqual(secondInvalidations[0].cause.
stackTrace.length, 1); | |
| 144 InspectorTest.assertEquals(secondInvalidations[1].type, WebInspe
ctor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 145 InspectorTest.assertEquals(secondInvalidations[1].nodeName, "DIV
id='testElementTwo' class='blue'"); | |
| 146 InspectorTest.assertEquals(secondInvalidations[1].cause.reason,
"StyleInvalidator"); | |
| 147 InspectorTest.assertGreaterOrEqual(secondInvalidations[1].cause.
stackTrace.length, 1); | |
| 148 | 98 |
| 149 var thirdRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 2); | 99 var thirdRecord = InspectorTest.findTimelineRecord(WebInspector.
TimelineModel.RecordType.RecalculateStyles, 2); |
| 150 var thirdInvalidations = thirdRecord._event.invalidationTracking
Events; | 100 InspectorTest.addArray(thirdRecord._event.invalidationTrackingEv
ents, InspectorTest.InvalidationFormatters, "", "third recalculate styles"); |
| 151 InspectorTest.assertEquals(thirdInvalidations.length, 3); | |
| 152 InspectorTest.assertEquals(thirdInvalidations[0].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 153 InspectorTest.assertEquals(thirdInvalidations[0].nodeName, "DIV
id='testElementOne' class='snow'"); | |
| 154 InspectorTest.assertEquals(thirdInvalidations[0].cause.reason, "
StyleInvalidator"); | |
| 155 InspectorTest.assertGreaterOrEqual(thirdInvalidations[0].cause.s
tackTrace.length, 1); | |
| 156 InspectorTest.assertEquals(thirdInvalidations[1].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 157 InspectorTest.assertEquals(thirdInvalidations[1].nodeName, "DIV
id='testElementTwo' class='snow'"); | |
| 158 InspectorTest.assertEquals(thirdInvalidations[1].cause.reason, "
StyleInvalidator"); | |
| 159 InspectorTest.assertGreaterOrEqual(thirdInvalidations[1].cause.s
tackTrace.length, 1); | |
| 160 InspectorTest.assertEquals(thirdInvalidations[2].type, WebInspec
tor.TimelineModel.RecordType.StyleRecalcInvalidationTracking); | |
| 161 InspectorTest.assertEquals(thirdInvalidations[2].nodeName, "DIV
id='testElementThree' class='snow'"); | |
| 162 InspectorTest.assertEquals(thirdInvalidations[2].cause.reason, "
StyleInvalidator"); | |
| 163 InspectorTest.assertGreaterOrEqual(thirdInvalidations[2].cause.s
tackTrace.length, 1); | |
| 164 next(); | 101 next(); |
| 165 }); | 102 }); |
| 166 } | 103 } |
| 167 ]); | 104 ]); |
| 168 } | 105 } |
| 169 </script> | 106 </script> |
| 170 <style> | 107 <style> |
| 171 .testHolder > .red { background-color: red; } | 108 .testHolder > .red { background-color: red; } |
| 172 .testHolder > .green { background-color: green; } | 109 .testHolder > .green { background-color: green; } |
| 173 .testHolder > .blue { background-color: blue; } | 110 .testHolder > .blue { background-color: blue; } |
| 174 .testHolder > .snow { background-color: snow; } | 111 .testHolder > .snow { background-color: snow; } |
| 175 </style> | 112 </style> |
| 176 </style> | |
| 177 </head> | 113 </head> |
| 178 <body onload="runTest()"> | 114 <body onload="runTest()"> |
| 179 <p>Tests the Timeline API instrumentation of style recalc events with invalidati
ons.</p> | 115 <p>Tests the Timeline API instrumentation of style recalc events with invalidati
ons.</p> |
| 180 <div class="testHolder"> | 116 <div class="testHolder"> |
| 181 <div id="testElementOne">PASS</div><div id="testElementTwo">PASS</div><div id="t
estElementThree">PASS</div> | 117 <div id="testElementOne">PASS</div><div id="testElementTwo">PASS</div><div id="t
estElementThree">PASS</div> |
| 182 </div> | 118 </div> |
| 183 <iframe src="resources/timeline-iframe-with-style.html" style="position: absolut
e; left: 40px; top: 40px; width: 100px; height: 100px; border: none"></iframe> | 119 <iframe src="resources/timeline-iframe-with-style.html" style="position: absolut
e; left: 40px; top: 40px; width: 100px; height: 100px; border: none"></iframe> |
| 184 </body> | 120 </body> |
| 185 </html> | 121 </html> |
| OLD | NEW |