Backed out 4 changesets (bug 1008301) for possibly breaking OSX 10.8 reftests on a CLOSED TREE

Backed out changeset 6a9b7a423db8 (bug 1008301)
Backed out changeset bd16c8833501 (bug 1008301)
Backed out changeset d1fab05aa5f5 (bug 1008301)
Backed out changeset 16ddb5b9eb6d (bug 1008301)
This commit is contained in:
Wes Kocher 2014-05-12 14:35:46 -07:00
parent f962b10f7f
commit 8ecfe82479
6 changed files with 11 additions and 152 deletions

View File

@ -108,8 +108,6 @@ struct LayerPropertiesBase : public LayerProperties
, mMaskLayer(nullptr)
, mVisibleRegion(aLayer->GetVisibleRegion())
, mInvalidRegion(aLayer->GetInvalidRegion())
, mPostXScale(aLayer->GetPostXScale())
, mPostYScale(aLayer->GetPostYScale())
, mOpacity(aLayer->GetLocalOpacity())
, mUseClipRect(!!aLayer->GetClipRect())
{
@ -144,9 +142,7 @@ struct LayerPropertiesBase : public LayerProperties
{
gfx3DMatrix transform;
gfx::To3DMatrix(mLayer->GetTransform(), transform);
bool transformChanged = !mTransform.FuzzyEqual(transform) ||
mLayer->GetPostXScale() != mPostXScale ||
mLayer->GetPostYScale() != mPostYScale;
bool transformChanged = !mTransform.FuzzyEqual(transform);
Layer* otherMask = mLayer->GetMaskLayer();
const nsIntRect* otherClip = mLayer->GetClipRect();
nsIntRegion result;
@ -170,6 +166,13 @@ struct LayerPropertiesBase : public LayerProperties
}
}
nsIntRegion visible;
visible.Xor(mVisibleRegion, mLayer->GetVisibleRegion());
if (!visible.IsEmpty()) {
aGeometryChanged = true;
}
AddTransformedRegion(result, visible, mTransform);
AddRegion(result, ComputeChangeInternal(aCallback, aGeometryChanged));
AddTransformedRegion(result, mLayer->GetInvalidRegion(), mTransform);
@ -213,8 +216,6 @@ struct LayerPropertiesBase : public LayerProperties
nsIntRegion mVisibleRegion;
nsIntRegion mInvalidRegion;
gfx3DMatrix mTransform;
float mPostXScale;
float mPostYScale;
float mOpacity;
nsIntRect mClipRect;
bool mUseClipRect;
@ -224,8 +225,6 @@ struct ContainerLayerProperties : public LayerPropertiesBase
{
ContainerLayerProperties(ContainerLayer* aLayer)
: LayerPropertiesBase(aLayer)
, mPreXScale(aLayer->GetPreXScale())
, mPreYScale(aLayer->GetPreYScale())
{
for (Layer* child = aLayer->GetFirstChild(); child; child = child->GetNextSibling()) {
mChildren.AppendElement(CloneLayerTreePropertiesInternal(child));
@ -238,21 +237,6 @@ struct ContainerLayerProperties : public LayerPropertiesBase
ContainerLayer* container = mLayer->AsContainerLayer();
nsIntRegion result;
if (mPreXScale != container->GetPreXScale() ||
mPreYScale != container->GetPreYScale()) {
aGeometryChanged = true;
result = OldTransformedBounds();
AddRegion(result, NewTransformedBounds());
// If we don't have to generate invalidations separately for child
// layers then we can just stop here since we've already invalidated the entire
// old and new bounds.
if (!aCallback) {
ClearInvalidations(mLayer);
return result;
}
}
// A low frame rate is especially visible to users when scrolling, so we
// particularly want to avoid unnecessary invalidation at that time. For us
// here, that means avoiding unnecessary invalidation of child items when
@ -328,8 +312,6 @@ struct ContainerLayerProperties : public LayerPropertiesBase
// The old list of children:
nsAutoTArray<nsAutoPtr<LayerPropertiesBase>,1> mChildren;
float mPreXScale;
float mPreYScale;
};
struct ColorLayerProperties : public LayerPropertiesBase

View File

@ -275,15 +275,13 @@ DisplayItemClip::RemoveRoundedCorners()
mRoundedClipRects.Clear();
}
// Computes the difference between aR1 and aR2, limited to aBounds.
static void
AccumulateRectDifference(const nsRect& aR1, const nsRect& aR2, const nsRect& aBounds, nsRegion* aOut)
AccumulateRectDifference(const nsRect& aR1, const nsRect& aR2, nsRegion* aOut)
{
if (aR1.IsEqualInterior(aR2))
return;
nsRegion r;
r.Xor(aR1, aR2);
r.And(r, aBounds);
aOut->Or(*aOut, r);
}
@ -301,8 +299,8 @@ DisplayItemClip::AddOffsetAndComputeDifference(const nsPoint& aOffset,
return;
}
if (mHaveClipRect) {
AccumulateRectDifference(mClipRect + aOffset, aOther.mClipRect,
aBounds.Union(aOtherBounds),
AccumulateRectDifference((mClipRect + aOffset).Intersect(aBounds),
aOther.mClipRect.Intersect(aOtherBounds),
aDifference);
}
for (uint32_t i = 0; i < mRoundedClipRects.Length(); ++i) {

View File

@ -1472,11 +1472,6 @@ ContainerState::CreateOrRecycleThebesLayer(const nsIFrame* aAnimatedGeometryRoot
if (!FuzzyEqual(data->mXScale, mParameters.mXScale, 0.00001f) ||
!FuzzyEqual(data->mYScale, mParameters.mYScale, 0.00001f) ||
data->mAppUnitsPerDevPixel != mAppUnitsPerDevPixel) {
#ifdef MOZ_DUMP_PAINTING
if (nsLayoutUtils::InvalidationDebuggingIsEnabled()) {
printf_stderr("Recycled layer %p changed scale\n", layer.get());
}
#endif
InvalidateEntireThebesLayer(layer, aAnimatedGeometryRoot);
#ifndef MOZ_ANDROID_OMTC
didResetScrollPositionForLayerPixelAlignment = true;

View File

@ -1,56 +0,0 @@
<!DOCTYPE html>
<html lang="en" class="reftest-wait">
<meta charset="utf-8">
<title>Scrolling the horizontal bar away shouldn't invalidate the green rectangle</title>
<style>
.wrapper {
transform: translateY(1px);
}
.content {
box-sizing: border-box;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.first {
height: 20px;
}
.second {
margin-left: auto;
width: 20px;
height: 200px;
}
.reftest-no-paint {
margin: -150px 100px 0;
height: 100px;
border-color: lime;
}
body {
margin: 0;
padding: 50px;
height: 3000px;
}
</style>
<div class="wrapper">
<div class="first content"></div>
<div class="second content"></div>
</div>
<div class="reftest-no-paint content"></div>
<script>
function doTest() {
document.documentElement.scrollTop = 100;
document.documentElement.removeAttribute("class");
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>

View File

@ -1,58 +0,0 @@
<!DOCTYPE html>
<html lang="en" class="reftest-wait">
<meta charset="utf-8">
<title>Scrolling the horizontal bar away shouldn't invalidate the green rectangle</title>
<style>
.wrapper {
transform: translateY(1px);
}
.content {
box-sizing: border-box;
border: 1px solid rgba(0, 0, 0, 0.2);
}
.first {
height: 20px;
}
.second {
margin-left: auto;
width: 20px;
height: 200px;
}
.reftest-no-paint {
margin: -150px 100px 0;
height: 100px;
border-color: lime;
}
body {
margin: 0;
padding: 50px;
height: 3000px;
}
</style>
<div class="wrapper">
<div class="wrapper">
<div class="first content"></div>
<div class="second content"></div>
</div>
</div>
<div class="reftest-no-paint content"></div>
<script>
function doTest() {
document.documentElement.scrollTop = 100;
document.documentElement.removeAttribute("class");
}
document.addEventListener("MozReftestInvalidate", doTest, false);
</script>

View File

@ -40,5 +40,3 @@ pref(layout.animated-image-layers.enabled,true) == test-animated-image-layers-ba
== filter-userspace-offset.svg?offsetContainer=rect&filter=matrix-fillPaint-userSpace-at100 filter-userspace-offset.svg
== scroll-inactive-layers.html scroll-inactive-layers.html
== scroll-inactive-layers-2.html scroll-inactive-layers-2.html
!= inactive-layertree-visible-region-1.html about:blank
!= inactive-layertree-visible-region-2.html about:blank