Bug 1656893 - Make test_running_on_compositor.html work with disabling partial pre-render. r=boris

Differential Revision: https://phabricator.services.mozilla.com/D85797
This commit is contained in:
Hiroyuki Ikezoe 2020-08-03 23:33:09 +00:00
Родитель 62f6fc74f8
Коммит 29fef99b15
1 изменённых файлов: 46 добавлений и 18 удалений

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

@ -1429,16 +1429,30 @@ promise_test(async t => {
await waitForAnimationReadyToRestyle(animation3);
await waitForPaints();
assert_animation_is_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its inner frames is too large');
assert_animation_is_running_on_compositor(animation2,
'rotate animation in the 3d rendering context is still running on ' +
'the compositor because its display item is created earlier');
assert_animation_is_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its parent frames is too large');
const isPartialPrerenderEnabled =
SpecialPowers.getBoolPref('layout.animation.prerender.partial');
if (isPartialPrerenderEnabled) {
assert_animation_is_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its inner frames is too large');
assert_animation_is_running_on_compositor(animation2,
'rotate animation in the 3d rendering context is still running on ' +
'the compositor because its display item is created earlier');
assert_animation_is_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its parent frames is too large');
} else {
assert_animation_is_not_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor because one of its inner frames is too large');
assert_animation_is_running_on_compositor(animation2,
'rotate animation in the 3d rendering context is still running on ' +
'the compositor because its display item is created earlier');
assert_animation_is_not_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor because one of its parent frames is too large');
}
innerBText.remove();
}, 'Transform-like animations in the 3d rendering context should run on ' +
'the compositor even if it is the ancestor of ones whose frames are too ' +
@ -1472,16 +1486,30 @@ promise_test(async t => {
await waitForAnimationReadyToRestyle(animation3);
await waitForPaints();
assert_animation_is_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its inner frames is too large');
assert_animation_is_running_on_compositor(animation2,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor even if its frame size is too large');
assert_animation_is_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor even if its previous sibling frame is too large');
const isPartialPrerenderEnabled =
SpecialPowers.getBoolPref('layout.animation.prerender.partial');
if (isPartialPrerenderEnabled) {
assert_animation_is_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if one of its inner frames is too large');
assert_animation_is_running_on_compositor(animation2,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if its frame size is too large');
assert_animation_is_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should be running on ' +
'the compositor even if its previous sibling frame is too large');
} else {
assert_animation_is_not_running_on_compositor(animation1,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor because one of its inner frames is too large');
assert_animation_is_not_running_on_compositor(animation2,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor because its frame size is too large');
assert_animation_is_not_running_on_compositor(animation3,
'rotate animation in the 3d rendering context should not be running on ' +
'the compositor because its previous sibling frame is too large');
}
innerAText.remove();
}, 'Transform-like animations in the 3d rendering context should run on ' +
'the compositor even if its previous sibling frame size is too large');