| Index: LayoutTests/fast/repaint/resources/text-based-repaint.js
|
| diff --git a/LayoutTests/fast/repaint/resources/text-based-repaint.js b/LayoutTests/fast/repaint/resources/text-based-repaint.js
|
| index 2170cda5d353dada52ca8531dbb8319931c4d009..6f7dbea497682a977faced4c9a8429c65a6ad5c5 100644
|
| --- a/LayoutTests/fast/repaint/resources/text-based-repaint.js
|
| +++ b/LayoutTests/fast/repaint/resources/text-based-repaint.js
|
| @@ -1,34 +1,50 @@
|
| +// Asynchronous tests should manually call finishRepaintTest at the appropriate time.
|
| +window.testIsAsync = false;
|
| +
|
| function runRepaintTest()
|
| {
|
| - if (window.testRunner && window.internals) {
|
| - if (window.enablePixelTesting)
|
| - window.testRunner.dumpAsTextWithPixelResults();
|
| - else
|
| - window.testRunner.dumpAsText();
|
| + if (!window.testRunner || !window.internals) {
|
| + setTimeout(repaintTest, 100);
|
| + return;
|
| + }
|
|
|
| - if (document.body)
|
| - document.body.offsetTop;
|
| - else if (document.documentElement)
|
| - document.documentElement.offsetTop;
|
| + if (window.enablePixelTesting)
|
| + testRunner.dumpAsTextWithPixelResults();
|
| + else
|
| + testRunner.dumpAsText();
|
|
|
| - window.internals.startTrackingRepaints(document);
|
| + if (window.testIsAsync)
|
| + testRunner.waitUntilDone();
|
|
|
| - repaintTest();
|
| + if (document.body)
|
| + document.body.offsetTop;
|
| + else if (document.documentElement)
|
| + document.documentElement.offsetTop;
|
|
|
| - // force a style recalc.
|
| - var dummy = document.body.offsetTop;
|
| + window.internals.startTrackingRepaints(document);
|
|
|
| - var repaintRects = window.internals.repaintRectsAsText(document);
|
| + repaintTest();
|
|
|
| - window.internals.stopTrackingRepaints(document);
|
| + if (!window.testIsAsync)
|
| + finishRepaintTest();
|
| +}
|
|
|
| - var pre = document.createElement('pre');
|
| - document.body.appendChild(pre);
|
| - pre.textContent += repaintRects;
|
| +function finishRepaintTest()
|
| +{
|
| + // Force a style recalc.
|
| + var dummy = document.body.offsetTop;
|
|
|
| - if (window.afterTest)
|
| - window.afterTest();
|
| - } else {
|
| - setTimeout(repaintTest, 100);
|
| - }
|
| + var repaintRects = window.internals.repaintRectsAsText(document);
|
| +
|
| + internals.stopTrackingRepaints(document);
|
| +
|
| + var pre = document.createElement('pre');
|
| + document.body.appendChild(pre);
|
| + pre.textContent += repaintRects;
|
| +
|
| + if (window.afterTest)
|
| + window.afterTest();
|
| +
|
| + if (window.testIsAsync)
|
| + testRunner.notifyDone();
|
| }
|
|
|