Bug 1332588 - Drop nsChangeHint_UpdateTransformLayer on the frame that we don't support transform. r=boris

Depends on D75049

Differential Revision: https://phabricator.services.mozilla.com/D75050
This commit is contained in:
Hiroyuki Ikezoe 2020-05-13 21:52:08 +00:00
Родитель 0d80395dfa
Коммит a6cd6e17ee
3 изменённых файлов: 31 добавлений и 3 удалений

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

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="UTF-8">
<style>
span {
width: 100px;
height: 100px;
background-color: red;
}
</style>
<script>
window.onload = function() {
let body = document.getElementsByTagName("body")[0];
let o_0 = document.createElement("span");
body.appendChild(o_0);
o_0.animate([{ "padding": "57pt", "transform": "none" },
{ "padding": "57pt", "transform": "rotate(90deg)" }] , 10000);
body.appendChild(document.createElement("colgroup"));
document.documentElement.classList.remove("reftest-wait");
};
</script>
</head>
<body></body>
</html>

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

@ -23,6 +23,7 @@ pref(dom.animations-api.compositing.enabled,true) load 1323114-2.html
pref(dom.animations-api.implicit-keyframes.enabled,true) load 1323119-1.html
pref(dom.animations-api.implicit-keyframes.enabled,true) load 1324554-1.html
pref(dom.animations-api.implicit-keyframes.enabled,true) pref(dom.animations-api.compositing.enabled,true) load 1325193-1.html
load 1332588-1.html
pref(dom.animations-api.implicit-keyframes.enabled,true) load 1330190-1.html
pref(dom.animations-api.core.enabled,true) pref(dom.animations-api.implicit-keyframes.enabled,true) pref(dom.animations-api.compositing.enabled,true) pref(dom.animations-api.getAnimations.enabled,true) load 1330190-2.html
pref(dom.animations-api.implicit-keyframes.enabled,true) pref(dom.animations-api.compositing.enabled,true) load 1330513-1.html

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

@ -1500,9 +1500,11 @@ void RestyleManager::ProcessRestyledFrames(nsStyleChangeList& aChangeList) {
if (!(frame->GetStateBits() & NS_FRAME_MAY_BE_TRANSFORMED)) {
// Frame can not be transformed, and thus a change in transform will
// have no effect and we should not use the
// nsChangeHint_UpdatePostTransformOverflow hint.
hint &= ~nsChangeHint_UpdatePostTransformOverflow;
// have no effect and we should not use either
// nsChangeHint_UpdatePostTransformOverflow or
// nsChangeHint_UpdateTransformLayerhint.
hint &= ~(nsChangeHint_UpdatePostTransformOverflow |
nsChangeHint_UpdateTransformLayer);
}
if ((hint & nsChangeHint_UpdateTransformLayer) &&