☠☠ backed out by 16620f50a937 ☠ ☠ | |
author | Matt Woodrow <mwoodrow@mozilla.com> |
Thu, 24 Mar 2016 18:15:40 +1300 | |
changeset 290189 | e3853bd7905106f0ad6674ff9fd1b62713a58333 |
parent 290188 | 41de0b26ddd2349c616815788c1ed10c3dc43789 |
child 290190 | 3e56c2c501974d6f141f87e4d43c5c111b71c16c |
push id | 30114 |
push user | cbook@mozilla.com |
push date | Thu, 24 Mar 2016 15:15:54 +0000 |
treeherder | mozilla-central@24c5fbde4488 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | dholbert |
bugs | 1258843 |
milestone | 48.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/layout/svg/SVGTextFrame.cpp +++ b/layout/svg/SVGTextFrame.cpp @@ -3245,16 +3245,19 @@ SVGTextFrame::BuildDisplayList(nsDisplay const nsDisplayListSet& aLists) { if (NS_SUBTREE_DIRTY(this)) { // We can sometimes be asked to paint before reflow happens and we // have updated mPositions, etc. In this case, we just avoid // painting. return; } + if (!IsVisibleForPainting(aBuilder)) { + return; + } aLists.Content()->AppendNewToTop( new (aBuilder) nsDisplaySVGText(aBuilder, this)); } nsresult SVGTextFrame::AttributeChanged(int32_t aNameSpaceID, nsIAtom* aAttribute, int32_t aModType)
--- a/layout/svg/nsSVGOuterSVGFrame.cpp +++ b/layout/svg/nsSVGOuterSVGFrame.cpp @@ -741,17 +741,17 @@ nsSVGOuterSVGFrame::BuildDisplayList(nsD if ((aBuilder->IsForEventDelivery() && NS_SVGDisplayListHitTestingEnabled()) || (!aBuilder->IsForEventDelivery() && NS_SVGDisplayListPaintingEnabled())) { nsDisplayList *contentList = aLists.Content(); nsDisplayListSet set(contentList, contentList, contentList, contentList, contentList, contentList); BuildDisplayListForNonBlockChildren(aBuilder, aDirtyRect, set); - } else { + } else if (IsVisibleForPainting(aBuilder)) { aLists.Content()->AppendNewToTop( new (aBuilder) nsDisplayOuterSVG(aBuilder, this)); } } nsSplittableType nsSVGOuterSVGFrame::GetSplittableType() const {
--- a/layout/svg/nsSVGPathGeometryFrame.cpp +++ b/layout/svg/nsSVGPathGeometryFrame.cpp @@ -226,17 +226,18 @@ nsSVGPathGeometryFrame::IsSVGTransformed return foundTransform; } void nsSVGPathGeometryFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder, const nsRect& aDirtyRect, const nsDisplayListSet& aLists) { - if (!static_cast<const nsSVGElement*>(mContent)->HasValidDimensions()) { + if (!static_cast<const nsSVGElement*>(mContent)->HasValidDimensions() || + !IsVisibleForPainting(aBuilder)) { return; } aLists.Content()->AppendNewToTop( new (aBuilder) nsDisplaySVGPathGeometry(aBuilder, this)); } //---------------------------------------------------------------------- // nsISVGChildFrame methods