Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-layout.js |
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-layout.js b/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-layout.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..9edb15c039dc114c99d0ded4cbe90c245f92a53c |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-layout.js |
| @@ -0,0 +1,48 @@ |
| +(async function(testRunner) { |
| + let {page, session, dp} = await testRunner.startHTML(` |
| + <style> |
| + .my-class { |
| + min-width: 100px; |
| + background-color: red; |
| + } |
| + </style> |
| + <div id='myDiv'>DIV</div> |
| + `, ''); |
| + |
| + function performActions() { |
| + var div = document.querySelector('#myDiv'); |
| + div.classList.add('my-class'); |
| + div.offsetWidth; |
| + return Promise.resolve(); |
| + } |
| + |
| + var tracingHelper = (await testRunner.loadScript('../resources/tracing-test.js'))(testRunner, session); |
| + await session.evaluate(performActions.toString()); |
|
caseq
2017/06/22 19:32:41
note that most of the time waiting for evaluate(pe
dgozman
2017/06/22 21:48:57
Correct!
|
| + tracingHelper.invokeAsyncWithTracing('performActions', finish); |
| + |
| + function finish(devtoolsEvents) { |
| + var schedRecalc = tracingHelper.findEvent('ScheduleStyleRecalculation', 'I'); |
| + var recalcBegin = tracingHelper.findEvent('UpdateLayoutTree', 'B'); |
| + var recalcEnd = tracingHelper.findEvent('UpdateLayoutTree', 'E'); |
| + testRunner.log('UpdateLayoutTree frames match: ' + (schedRecalc.args.data.frame === recalcBegin.args.beginData.frame)); |
| + testRunner.log('UpdateLayoutTree elementCount > 0: ' + (recalcEnd.args.elementCount > 0)); |
| + |
| + var invalidate = tracingHelper.findEvent('InvalidateLayout', 'I'); |
| + var layoutBegin = tracingHelper.findEvent('Layout', 'B'); |
| + var layoutEnd = tracingHelper.findEvent('Layout', 'E'); |
| + |
| + testRunner.log('InvalidateLayout frames match: ' + (recalcBegin.args.beginData.frame === invalidate.args.data.frame)); |
| + |
| + var beginData = layoutBegin.args.beginData; |
| + testRunner.log('Layout frames match: ' + (invalidate.args.data.frame === beginData.frame)); |
| + testRunner.log('dirtyObjects > 0: ' + (beginData.dirtyObjects > 0)); |
| + testRunner.log('totalObjects > 0: ' + (beginData.totalObjects > 0)); |
| + |
| + var endData = layoutEnd.args.endData; |
| + testRunner.log('has rootNode id: ' + (endData.rootNode > 0)); |
| + testRunner.log('has root quad: ' + !!endData.root); |
| + |
| + testRunner.log('SUCCESS: found all expected events.'); |
| + testRunner.completeTest(); |
| + } |
| +}) |