зеркало из https://github.com/mozilla/gecko-dev.git
Bug 738192 follow-up. Re-enable layout/reftests/svg/dynamic-text-04.svg after fixing MarkDirtyBitsOnDescendants. r=me.
This commit is contained in:
Родитель
b101abb1ed
Коммит
80beda3ba7
|
@ -98,7 +98,7 @@ fuzzy-if(/^Windows\x20NT\x206\.1/.test(http.oscpu),1,2) == clipPath-and-shape-re
|
||||||
== dynamic-text-01.svg dynamic-text-01-ref.svg
|
== dynamic-text-01.svg dynamic-text-01-ref.svg
|
||||||
== dynamic-text-02.svg dynamic-text-02-ref.svg
|
== dynamic-text-02.svg dynamic-text-02-ref.svg
|
||||||
== dynamic-text-03.svg dynamic-text-03-ref.svg
|
== dynamic-text-03.svg dynamic-text-03-ref.svg
|
||||||
#random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == dynamic-text-04.svg dynamic-text-04-ref.svg # bug 421587 for WinXP
|
random-if(/^Windows\x20NT\x205\.1/.test(http.oscpu)) == dynamic-text-04.svg dynamic-text-04-ref.svg # bug 421587 for WinXP
|
||||||
== dynamic-text-05.svg pass.svg
|
== dynamic-text-05.svg pass.svg
|
||||||
== dynamic-text-06.svg pass.svg
|
== dynamic-text-06.svg pass.svg
|
||||||
== dynamic-text-07.svg dynamic-text-07-ref.svg
|
== dynamic-text-07.svg dynamic-text-07-ref.svg
|
||||||
|
|
|
@ -278,15 +278,17 @@ nsSVGTextFrame::GetCanvasTM()
|
||||||
static void
|
static void
|
||||||
MarkDirtyBitsOnDescendants(nsIFrame *aFrame)
|
MarkDirtyBitsOnDescendants(nsIFrame *aFrame)
|
||||||
{
|
{
|
||||||
if (aFrame->GetStateBits() & (NS_FRAME_IS_DIRTY | NS_FRAME_FIRST_REFLOW)) {
|
// Do not skip marking of aFrame or any of its descendants if they have
|
||||||
// Nothing to do if we're already dirty, or if the outer-<svg>
|
// the NS_FRAME_IS_DIRTY set, because some of their descendants may not
|
||||||
// hasn't yet had its initial reflow.
|
// have it set, and we need all descendants to be dirty.
|
||||||
|
if (aFrame->GetStateBits() & (NS_FRAME_FIRST_REFLOW)) {
|
||||||
|
// Nothing to do if our outer-<svg> hasn't yet had its initial reflow.
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
nsIFrame* kid = aFrame->GetFirstPrincipalChild();
|
nsIFrame* kid = aFrame->GetFirstPrincipalChild();
|
||||||
while (kid) {
|
while (kid) {
|
||||||
nsISVGChildFrame* svgkid = do_QueryFrame(kid);
|
nsISVGChildFrame* svgkid = do_QueryFrame(kid);
|
||||||
if (svgkid && !(kid->GetStateBits() & NS_FRAME_IS_DIRTY)) {
|
if (svgkid) {
|
||||||
MarkDirtyBitsOnDescendants(kid);
|
MarkDirtyBitsOnDescendants(kid);
|
||||||
kid->AddStateBits(NS_FRAME_IS_DIRTY);
|
kid->AddStateBits(NS_FRAME_IS_DIRTY);
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче