Bug 1383589 - Process post traversal whenever StyleDocument() or StyleDocumentForThrottledAnimationFlush() returns true. r=emilio

The test case in this patch freezes without this fix.

MozReview-Commit-ID: 6Rb9XmtAmpM

--HG--
extra : rebase_source : 9a68482c77d5e77ed5733f757ed3ec021834ba2f
This commit is contained in:
Hiroyuki Ikezoe 2017-07-25 11:49:04 +09:00
Родитель 40e8440da2
Коммит b096686ea6
3 изменённых файлов: 17 добавлений и 5 удалений

Просмотреть файл

@ -870,11 +870,8 @@ ServoRestyleManager::DoProcessPendingRestyles(TraversalRestyleBehavior
DocumentStyleRootIterator iter(doc);
while (Element* root = iter.GetNextStyleRoot()) {
ServoRestyleState state(*styleSet, currentChanges);
if (!forThrottledAnimationFlush ||
root->HasAnimationOnlyDirtyDescendantsForServo()) {
anyStyleChanged |=
ProcessPostTraversal(root, nullptr, state, aRestyleBehavior);
}
anyStyleChanged |=
ProcessPostTraversal(root, nullptr, state, aRestyleBehavior);
}
}

Просмотреть файл

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html class="reftest-wait">
<script>
window.addEventListener('load', () => {
document.documentElement.animate([{ transform: 'none' }], 10000);
requestAnimationFrame(() => {
SpecialPowers.getDOMWindowUtils(window)
.sendMouseEvent("mousemove", 100, 100, 1, 0, 1, 0);
requestAnimationFrame(() => {
document.documentElement.classList.remove('reftest-wait');
});
});
});
</script>

Просмотреть файл

@ -185,6 +185,7 @@ load link-transition-before.html
load 1381682.html
load 1382672.html
load 1382710.html
pref(dom.animations-api.core.enabled,true) load 1383589-1.html
load 1383001.html
load 1383001-2.html
load 1383319.html