Modified: trunk/Source/WebCore/ChangeLog (148764 => 148765)
--- trunk/Source/WebCore/ChangeLog 2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/ChangeLog 2013-04-19 20:41:23 UTC (rev 148765)
@@ -1,3 +1,33 @@
+2013-04-19 Shawn Singh <[email protected]>
+
+ Remove non-overlap testing code in RenderLayerCompositor
+ https://bugs.webkit.org/show_bug.cgi?id=85521
+
+ Reviewed by Simon Fraser.
+
+ m_compositingConsultsOverlap is always true in the current
+ code. This patch removes this flag, and removes dead code that is
+ never executed because it was never false.
+
+ No new tests, no change in behavior. The cleanup is covered by
+ existing tests.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
+ removed if-statement that is always true.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
+ removed if-statement that would never get triggered.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::RenderLayerCompositor):
+ (WebCore::RenderLayerCompositor::updateCompositingLayers):
+ removed m_compositingConsultsOverlap, and retained the code as if the flag were "true".
+
+ * rendering/RenderLayerCompositor.h:
+ (RenderLayerCompositor):
+
2013-04-19 Roger Fong <[email protected]>
Unreviewed. WebKit_Source is incorrectly set.
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (148764 => 148765)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2013-04-19 20:41:23 UTC (rev 148765)
@@ -2370,13 +2370,10 @@
// Our stacking container is guaranteed to contain all of our descendants that may need
// repositioning, so update compositing layers from there.
if (RenderLayer* compositingAncestor = stackingContainer()->enclosingCompositingLayer()) {
- if (compositor()->compositingConsultsOverlap()) {
- if (usesCompositedScrolling() && !hasOutOfFlowPositionedDescendant())
- compositor()->updateCompositingLayers(CompositingUpdateOnCompositedScroll, compositingAncestor);
- else
- compositor()->updateCompositingLayers(CompositingUpdateOnScroll, compositingAncestor);
- } else
- compositingAncestor->backing()->updateAfterLayout(RenderLayerBacking::IsUpdateRoot);
+ if (usesCompositedScrolling() && !hasOutOfFlowPositionedDescendant())
+ compositor()->updateCompositingLayers(CompositingUpdateOnCompositedScroll, compositingAncestor);
+ else
+ compositor()->updateCompositingLayers(CompositingUpdateOnScroll, compositingAncestor);
}
}
#endif
Modified: trunk/Source/WebCore/rendering/RenderLayerBacking.cpp (148764 => 148765)
--- trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerBacking.cpp 2013-04-19 20:41:23 UTC (rev 148765)
@@ -419,9 +419,6 @@
if (m_usingTiledCacheLayer)
return false;
- if (!compositor()->compositingConsultsOverlap())
- return false;
-
if (layerOrAncestorIsTransformedOrUsingCompositedScrolling(m_owningLayer))
return false;
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (148764 => 148765)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-04-19 20:41:23 UTC (rev 148765)
@@ -155,7 +155,7 @@
};
struct CompositingState {
- CompositingState(RenderLayer* compAncestor, bool testOverlap)
+ CompositingState(RenderLayer* compAncestor, bool testOverlap = true)
: m_compositingAncestor(compAncestor)
, m_subtreeIsCompositing(false)
, m_testingOverlap(testOverlap)
@@ -202,7 +202,6 @@
, m_showDebugBorders(false)
, m_showRepaintCounter(false)
, m_acceleratedDrawingEnabled(false)
- , m_compositingConsultsOverlap(true)
, m_reevaluateCompositingAfterLayout(false)
, m_compositing(false)
, m_compositingLayersNeedRebuild(false)
@@ -512,8 +511,7 @@
checkForHierarchyUpdate = true;
break;
case CompositingUpdateOnScroll:
- if (m_compositingConsultsOverlap)
- checkForHierarchyUpdate = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
+ checkForHierarchyUpdate = true; // Overlap can change with scrolling, so need to check for hierarchy updates.
needGeometryUpdate = true;
break;
@@ -527,12 +525,11 @@
bool needHierarchyUpdate = m_compositingLayersNeedRebuild;
bool isFullUpdate = !updateRoot;
- if (!updateRoot || m_compositingConsultsOverlap) {
- // Only clear the flag if we're updating the entire hierarchy.
- m_compositingLayersNeedRebuild = false;
- updateRoot = rootRenderLayer();
- }
+ // Only clear the flag if we're updating the entire hierarchy.
+ m_compositingLayersNeedRebuild = false;
+ updateRoot = rootRenderLayer();
+
if (isFullUpdate && updateType == CompositingUpdateAfterLayout)
m_reevaluateCompositingAfterLayout = false;
@@ -547,15 +544,11 @@
if (checkForHierarchyUpdate) {
// Go through the layers in presentation order, so that we can compute which RenderLayers need compositing layers.
// FIXME: we could maybe do this and the hierarchy udpate in one pass, but the parenting logic would be more complex.
- CompositingState compState(updateRoot, m_compositingConsultsOverlap);
+ CompositingState compState(updateRoot);
bool layersChanged = false;
bool saw3DTransform = false;
- if (m_compositingConsultsOverlap) {
- OverlapMap overlapTestRequestMap;
- computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap, compState, layersChanged, saw3DTransform);
- } else
- computeCompositingRequirements(0, updateRoot, 0, compState, layersChanged, saw3DTransform);
-
+ OverlapMap overlapTestRequestMap;
+ computeCompositingRequirements(0, updateRoot, &overlapTestRequestMap, compState, layersChanged, saw3DTransform);
needHierarchyUpdate |= layersChanged;
}
@@ -568,8 +561,7 @@
Frame* frame = m_renderView->frameView()->frame();
bool isMainFrame = !m_renderView->document()->ownerElement();
- LOG(Compositing, "\nUpdate %d of %s. Overlap testing is %s\n", m_rootLayerUpdateCount, isMainFrame ? "main frame" : frame->tree()->uniqueName().string().utf8().data(),
- m_compositingConsultsOverlap ? "on" : "off");
+ LOG(Compositing, "\nUpdate %d of %s.\n", m_rootLayerUpdateCount, isMainFrame ? "main frame" : frame->tree()->uniqueName().string().utf8().data());
}
#endif
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (148764 => 148765)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2013-04-19 20:32:55 UTC (rev 148764)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2013-04-19 20:41:23 UTC (rev 148765)
@@ -119,11 +119,6 @@
void setCompositingLayersNeedRebuild(bool needRebuild = true);
bool compositingLayersNeedRebuild() const { return m_compositingLayersNeedRebuild; }
- // Controls whether or not to consult geometry when deciding which layers need
- // to be composited. Defaults to true.
- void setCompositingConsultsOverlap(bool b) { m_compositingConsultsOverlap = b; }
- bool compositingConsultsOverlap() const { return m_compositingConsultsOverlap; }
-
// GraphicsLayers buffer state, which gets pushed to the underlying platform layers
// at specific times.
void scheduleLayerFlush(bool canThrottle);
@@ -405,7 +400,6 @@
bool m_showDebugBorders;
bool m_showRepaintCounter;
bool m_acceleratedDrawingEnabled;
- bool m_compositingConsultsOverlap;
// When true, we have to wait until layout has happened before we can decide whether to enter compositing mode,
// because only then do we know the final size of plugins and iframes.