UNPKG

@webcomponents/custom-elements

Version:
44 lines (39 loc) 1.48 kB
// Run a callback after layout and paint of all pending document changes. // // It has two modes: // - traditional mode, for existing tests, and tests needing customized notifyDone timing: // Usage: // if (window.testRunner) // testRunner.waitUntilDone(); // runAfterLayoutAndPaint(function() { // ... // some code which modifies style/layout // if (window.testRunner) // testRunner.notifyDone(); // // Or to ensure the next paint is executed before the test finishes: // // if (window.testRunner) // // runAfterAfterLayoutAndPaint(function() { testRunner.notifyDone() }); // // Or notifyDone any time later if needed. // }); // // - autoNotifyDone mode, for new tests which just need to change style/layout and finish: // Usage: // runAfterLayoutAndPaint(function() { // ... // some code which modifies style/layout // }, true); if (window.internals) internals.runtimeFlags.paintUnderInvalidationCheckingEnabled = true; function runAfterLayoutAndPaint(callback, autoNotifyDone) { if (!window.testRunner) { // For manual test. Delay 500ms to allow us to see the visual change // caused by the callback. setTimeout(callback, 500); return; } if (autoNotifyDone) testRunner.waitUntilDone(); testRunner.layoutAndPaintAsyncThen(function() { callback(); if (autoNotifyDone) testRunner.notifyDone(); }); }