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 |