зеркало из https://github.com/mozilla/gecko-dev.git
e7e006516c
When paintingSuppressed flag is true, paint_listener.waitForPaints() defers the waiting paint to the next tick. The paintingSupressed flag is set when pres shell is initialized and at that time if the document has not been loaded yet, a timer is created to clear the flag after nglayout.initialpaint.delay elapsed. And when the timer is fired, the flag is cleared, but if there is still pending reflow, it's not cleared. So what happened in the failure case; 1) In the first promise_test we wait for document load 2) The paintingSuppressed flag is set in the first promise_test and create the timer 3) When the document has been loaded but the timer has not yet been fired, start test refresh mode and create an element in the subsequent promise_test 4) Creating the element triggers a reflow 5) waitForPaints() is called 6) The timer is fired, but there is a pending reflow, so skip clearing the flag 7) Now it's in the test refresh mode, the pending flow will never be processed until some triggers happen (i.e. mouse movement, calling advanceTimeAndRefresh, etc.) 8) The test is timed out MozReview-Commit-ID: 5fLn9SNHp1J --HG-- extra : rebase_source : 3115a5d5ac1405f18efde7ade1fb9738858c518f |
||
---|---|---|
.. | ||
chrome | ||
crashtests | ||
css-animations | ||
css-transitions | ||
document-timeline | ||
mozilla | ||
style | ||
chrome.ini | ||
mochitest.ini | ||
testcommon.js |