1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Asynchronous tests should manually call finishRepaintTest at the appropriate
- // time.
- window.testIsAsync = false;
- window.outputRepaintRects = true;
- // All repaint tests are asynchronous.
- if (window.testRunner)
- testRunner.waitUntilDone();
- if (window.internals)
- internals.runtimeFlags.paintUnderInvalidationCheckingEnabled = true;
- // Add string names of objects that should be invalidated here. If you use this feature,
- // you must also include testharness.js.
- window.expectedObjectInvalidations = [];
- // Objects which must *not* be invalidated.
- window.expectedObjectNonInvalidations = [];
- function runRepaintTest()
- {
- if (!window.testRunner || !window.internals) {
- setTimeout(repaintTest, 500);
- return;
- }
- if (window.enablePixelTesting)
- testRunner.dumpAsTextWithPixelResults();
- else
- testRunner.dumpAsText();
- // This is equivalent to runAfterLayoutAndPaint() in
- // ../../resources/run-after-layout-and-paint.js. Duplicate it here so that
- // the callers don't need to include that file.
- requestAnimationFrame(() => {
- setTimeout(() => {
- internals.startTrackingRepaints(top.document);
- repaintTest();
- if (!window.testIsAsync)
- finishRepaintTest();
- }, 0);
- });
- }
- function runRepaintAndPixelTest()
- {
- window.enablePixelTesting = true;
- runRepaintTest();
- }
- function finishRepaintTest()
- {
- if (!window.testRunner || !window.internals)
- return;
- var flags = internals.LAYER_TREE_INCLUDES_INVALIDATIONS;
- if (window.layerTreeAsTextAdditionalFlags)
- flags |= layerTreeAsTextAdditionalFlags;
- var layersWithInvalidationsText = internals.layerTreeAsText(top.document, flags);
- internals.stopTrackingRepaints(top.document);
- // Play nice with JS tests which may want to print out assert results.
- if (window.isJsTest)
- window.outputRepaintRects = false;
- if (window.outputRepaintRects)
- testRunner.setCustomTextOutput(layersWithInvalidationsText);
- if (window.afterTest)
- window.afterTest();
- // Play nice with async JS tests which want to notifyDone themselves.
- if (!window.jsTestIsAsync)
- testRunner.notifyDone();
- }
|