Bug 1022612. Part 7: Enable APZC for IPC reftests. r=billm

--HG--
extra : rebase_source : 79e216bfb54db5df2c69b6e3c78fcd421cf5246b
Bug 1022612. Part 8: nsDisplayWrapList (but not subclasses) should return true for ShouldFlattenAway. r=mattwoodrow

Also the assertion in TryMerge is going away because we're going to do TryMerge
first in FrameLayerBuilder.

--HG--
extra : rebase_source : 62594931ff461dc1ae2c744531252d2b3c696ca0
Bug 1022612. Part 9: nsDisplayScrollInfoLayer destructor does not need to destroy ScrollLayerCount. r=mattwoodrow

Getting the timing of this right without processing display items in reverse
order is hard. But it doesn't matter if this property sticks around anyway.

--HG--
extra : rebase_source : 52cf25ce39a6ab38f89e0231ea044fdf3cac0a2d
Bug 1022612. Part 10: Implement merging and flattening in ProcessDisplayItems. r=mattwoodrow

BuildContainerLayerFor now has to be able to mutate the passed-in display item
list.

--HG--
extra : rebase_source : c242006445d90372f6c7941d909f30945422321b
Bug 1022612. Part 11: Set opaque flag on nsDisplayList if we find an opaque item that covers the whole list. r=mattwoodrow

This is less general than what nsDisplayItem::ComputeVisibility does. This means
if multiple opaque items together cover the list bounds, but not individually,
we won't mark the list as opaque. I think that should be OK.

--HG--
extra : rebase_source : 26e5e44fa90000089f1dc64c1cb073d5b1806765
Bug 1022612. Part 12: Propagate NeedsTransparentSurface in ProcessDisplayItems. r=mattwoodrow

--HG--
extra : rebase_source : b7302f3457837f8308925ab67705e6279a80caf3
Bug 1022612. Part 13: Set mDidComputeVisibility in ProcessDisplayItems. r=mattwoodrow

--HG--
extra : rebase_source : 456aaeba5a9bb3e8d34e0d900dd693f337cf2b12
Bug 1022612. Part 14: Don't compute a final transparent region anymore. r=mattwoodrow

Computing this via FrameLayerBuilder is some work and we don't really have to.

SuppressComponentAlpha will be true in more cases. This will be OK as long as
text in the chrome window is over opaque content in the same ThebesLayer. We
will miss some edge cases such as text in 'opacity' with no opaque background.
This should be OK.

--HG--
extra : rebase_source : 8ac6abb8f6b3ab078883935688ae1f5059b797c7
Bug 1022612. Part 15: Add nsDisplayItem::GetVisibleRectForChildren(). r=mattwoodrow

--HG--
extra : rebase_source : 79f4ee133e464d10c82efc78e42ea6dbcb2571c1
Bug 1022612. Part 15.5: Use GetVisibleRectForChildren instead of GetVisibleRect. r=mattwoodrow

--HG--
extra : rebase_source : 67cd76ce64beff29af0a90db76e752585922ddab
Bug 1022612. Part 16: No need to exclude final transparent region from window opaque region. r=mattwoodrow

The removed code should be a no-op as long as the window opaque region is
accurate enough.

--HG--
extra : rebase_source : ecdfdbd02fdf8df23a71514ada32a8d20926913f
Bug 1022612. Part 17: RecordFrameMetrics should not set layer visible regions. r=mattwoodrow

This is unnecessary. FrameLayerBuilder sets the correct region.

--HG--
extra : rebase_source : 45ed3e76905a37d1099af8dd907fa86061b5a867
Bug 1022612. Part 18: When ComputeVisibility returns false, RecomputeVisibility should avoid painting the item. r=mattwoodrow

--HG--
extra : rebase_source : 31e8a9ff9419b4aca2743d41db74b5271aae32bf
Bug 1022612. Part 19: Test that merged display item lists merge their contents in the correct z-order. r=mattwoodrow

Prior to this patch, the only tests that caught this were a couple of obscure
cases on B2G. This test tests it on all platforms.

--HG--
extra : rebase_source : 7748dde5aa0d51573acec9eb163f864beabefb3b
Bug 1022612. Part 20: Do the business. r=mattwoodrow

--HG--
extra : rebase_source : 48f0e2563f91351cac5ce1d3ed5e52364f24ccba
Bug 1022612. Part 21: Remove DidComputeVisibility checking. r=mattwoodrow

--HG--
extra : rebase_source : e0e13e5e6cc87fbc0d4f62e14465a813aa176094
Bug 1022612. Part 22: Add MOZ_COUNT_CTOR to nsDisplayWrapList. r=mattwoodrow

--HG--
extra : rebase_source : fd4ab8981669d3bf9e2c75d03e88590abb0c7ca1
Bug 1022612. Part 23: Remove nsDisplayItem::IsVaryingRelativeToMovingFrame. r=mattwoodrow

It's obsolete and no-one calls it.

--HG--
extra : rebase_source : 588144666e7abac06c19bfa5d1d3f41589bdd988
Bug 1022612. Part 24: Simplify nsDisplayList::ComputeVisibilityForSublist now that FrameLayerBuilder does most of the work. r=mattwoodrow

--HG--
extra : rebase_source : be5f97d69f41cf00eaf02d0292d4630a8721952d
Bug 1022612. Part 25: We don't need to explicitly worry about displayports anymore when computing occlusion. r=mattwoodrow

--HG--
extra : rebase_source : f4f15db168753f48e872b60fa8ea80c20c8f7761