gecko/layout/base
Robert O'Callahan 3a4355687e Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow
We currently set the visible region on most container layers twice: once in
BuildContainerLayerFor, where we don't take clipping from ancestors into
account, and then later ProcessDisplayItems calls RestrictVisibleRegionForLayer
which does take ancestor clipping into account. This causes unnecessary
Mutated()s.

In this patch we partially fix this by forcing transform layers to take
account of their ancestor clipping when they set the visible region in
BuildContainerLayerFor. For those layers we don't need to apply
ancestor clipping in ProcessDisplayItems. This is done in a rather
ugly way, by passing the ancestor clip rect as an extra field of
ContainerParameters. To preserve the optimization that prerendered
elements are treated as fully visible regardless of ancestor clipping,
we have to add a flag to turn that clipping off in BuildContainerLayerFor.

In bug 841192 we will be able to fix this in a much nicer way, because we can
get the ancestor clip directly off the nsDisplayItem passed to
BuildContainerLayerFor. But this approach is needed for the B2G18 branch.

--HG--
extra : rebase_source : 26fbe55db84ab96e1e358b8803b0563f42590836
2013-03-22 15:17:29 +13:00
..
crashtests Bug 848539 part 5: Back out 6bb37077d615, bug 763689 part 2 (style-system handling for min-width:auto). r=dbaron 2013-03-27 23:33:19 -07:00
tests Bug 852850 - Remove the faily test_image_layers.html mochitest. r=joe 2013-03-20 14:52:43 +13:00
FrameLayerBuilder.cpp Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow 2013-03-22 15:17:29 +13:00
FrameLayerBuilder.h Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow 2013-03-22 15:17:29 +13:00
FramePropertyTable.cpp
FramePropertyTable.h Bug 845374 - Part r: Stop including nsTArray.h in nsReadableUtils.h; r=khuey 2013-03-17 08:55:16 +01:00
Makefile.in Bug 852534 - Remove GRE_MODULE from Makefile.in; r=gps 2013-03-21 08:41:00 -07:00
MaskLayerImageCache.cpp
MaskLayerImageCache.h
moz.build Bug 844654 - Part 2: Move MODULE to moz.build; rs=gps 2013-03-19 11:47:00 -07:00
nsArenaMemoryStats.h
nsAutoLayoutPhase.cpp
nsAutoLayoutPhase.h
nsBidi.cpp
nsBidi.h
nsBidiPresUtils.cpp Bug 852501 part 4. Make CreateContinuingFrame infallible. r=dholbert 2013-03-19 21:47:49 -04:00
nsBidiPresUtils.h
nsCaret.cpp bug 845562 - remove GetFrameSelection() from nsISelectionPrivate r=smaug 2013-02-15 15:09:28 -05:00
nsCaret.h bug 845562 - remove GetFrameSelection() from nsISelectionPrivate r=smaug 2013-02-15 15:09:28 -05:00
nsChangeHint.h
nsChildIterator.cpp
nsChildIterator.h
nsCompatibility.h
nsCounterManager.cpp Bug 839809: Make counter-increments and list counting that would go past our internal (int32_t) limit keep the counter at its current value rather than wrapping. r=dholbert 2013-02-22 10:13:37 -08:00
nsCounterManager.h Bug 839809 followup: fix typos in comment. DONTBUILD. No review. 2013-02-22 10:29:05 -08:00
nsCSSColorUtils.cpp
nsCSSColorUtils.h Bug 847480 - Convert DeprecatedAbs use in NS_LUMINOSITY_DIFFERENCE to Abs. r=dbaron 2013-03-09 14:20:04 -08:00
nsCSSFrameConstructor.cpp Bug 847120: Remove nsIDOMSVGFilterPrimitiveStandardAttributes r=Ms2ger f=jwatt 2013-03-27 21:23:09 -04:00
nsCSSFrameConstructor.h Bug 852636. Remove unused argument of InitAndRestoreFrame. r=dholbert 2013-03-20 12:22:25 -04:00
nsCSSRendering.cpp Backed out changesets 957f2b35ce83:1799cffbba63 (bug 826093) for Android reftest-2 failures (again) on a CLOSED TREE. 2013-03-26 21:56:03 -04:00
nsCSSRendering.h Bug 848421. Part 2. Remove useless PresContext argument to nsCSSRendering::FindBackground. r=mats 2013-03-07 10:03:49 -06:00
nsCSSRenderingBorders.cpp Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
nsCSSRenderingBorders.h
nsDisplayItemTypes.h
nsDisplayItemTypesList.h
nsDisplayList.cpp Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow 2013-03-22 15:17:29 +13:00
nsDisplayList.h Bug 852489. Part 9: Avoid temporarily setting a layer's visible region to a non-final value. r=mattwoodrow 2013-03-22 15:17:29 +13:00
nsDisplayListInvalidation.cpp Bug 725981 - Only invalidate the difference in bounds when a solid color moves or resizes. r=roc 2013-03-08 15:15:10 +13:00
nsDisplayListInvalidation.h Bug 725981 - Only invalidate the difference in bounds when a solid color moves or resizes. r=roc 2013-03-08 15:15:10 +13:00
nsDocumentViewer.cpp Bug 807442 - Make assertion non-fatal. r=hsivonen 2013-03-28 12:13:11 -04:00
nsFrameManager.cpp Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
nsFrameManager.h
nsFrameManagerBase.h
nsFrameTraversal.cpp Bug 841261: Use init list instead of assignment in nsFrameIterator constructor. r=mats 2013-02-18 08:59:55 -08:00
nsFrameTraversal.h
nsGenConList.cpp Bug 841789, patch 1: Rename nsIFrame::GetStyleContext() to nsIFrame::StyleContext() since it can never return null. r=dholbert 2013-02-15 21:38:33 -08:00
nsGenConList.h Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert 2013-02-16 13:51:02 -08:00
nsIDocumentViewerPrint.h
nsIFrameTraversal.h
nsILayoutDebugger.h
nsILayoutHistoryState.h
nsIPercentHeightObserver.h
nsIPresShell.h Bug 716403 - Add nsIDOMWindowUtils.setContentDocumentFixedPositionMargins. r=roc,dholbert 2013-03-07 10:17:33 +00:00
nsIReflowCallback.h
nsIStyleSheetService.idl
nsLayoutDebugger.cpp Bug 846901 - Support prerendering elements with animated transforms that are offscreen but only by a small amount. r=mattwoodrow 2013-03-19 09:08:29 -04:00
nsLayoutHistoryState.cpp
nsLayoutUtils.cpp Bug 848539 part 5: Back out 6bb37077d615, bug 763689 part 2 (style-system handling for min-width:auto). r=dbaron 2013-03-27 23:33:19 -07:00
nsLayoutUtils.h Bug 841493 - Rename nsHTMLVideoElement to HTMLVideoElement, r=Ms2ger 2013-03-19 13:27:35 +01:00
nsPresArena.cpp Bug 852476 - Fix Valgrind annotations in nsPresArena.cpp. r=mats 2013-03-25 15:27:43 +01:00
nsPresArena.h
nsPresContext.cpp Bug 822399 - Make Event to use Paris bindings, r=peterv 2013-03-09 13:34:29 +02:00
nsPresContext.h Bug 843719: Reorder params in Margin constructors and SizeTo() methods to match CSS's top,right,bottom,left ordering. r=seth 2013-03-06 00:05:55 -08:00
nsPresShell.cpp Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
nsPresShell.h Bug 635852. r=smaug 2013-03-08 12:04:53 +01:00
nsPresState.h
nsQuoteList.cpp Bug 781360 patch 3: Rename {nsIFrame,nsStyleContext,nsComputedDOMStyle}::GetStyle* to Style*, since they can never return null. r=dholbert 2013-02-16 13:51:02 -08:00
nsQuoteList.h
nsRefreshDriver.cpp Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
nsRefreshDriver.h Bug 847890 - paint flashing for content only. r=roc 2013-03-12 11:01:00 -07:00
nsStyleChangeList.cpp
nsStyleChangeList.h
nsStyleConsts.h
nsStyleSheetService.cpp
nsStyleSheetService.h
PaintTracker.cpp
PaintTracker.h
PositionedEventTargeting.cpp Bug 843719: Reorder params in Margin constructors and SizeTo() methods to match CSS's top,right,bottom,left ordering. r=seth 2013-03-06 00:05:55 -08:00
PositionedEventTargeting.h
RestyleTracker.cpp Bug 851611 - Part 3: Rename headers. r=jrmuizel 2013-03-18 15:25:50 +01:00
RestyleTracker.h Bug 850672 r=roc 2013-03-21 15:33:00 +13:00
StackArena.cpp
StackArena.h