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

Unified Diff: third_party/WebKit/LayoutTests/inspector-protocol/timeline/timeline-layout.js

Issue 2942573003: [DevTools] New harness for inspector-protocol layout tests (Closed)
Patch Set: Protocol -> dp Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
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());
+ 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();
+ }
+})

Powered by Google App Engine
This is Rietveld 408576698