Index: Source/WebCore/rendering/RenderLayerCompositor.cpp |
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.cpp b/Source/WebCore/rendering/RenderLayerCompositor.cpp |
index 3a85f41cc161e94f9ac668d6df61a3aa46f522b5..5298f0652a98dac35cade0b9d139410be1f89585 100644 |
--- a/Source/WebCore/rendering/RenderLayerCompositor.cpp |
+++ b/Source/WebCore/rendering/RenderLayerCompositor.cpp |
@@ -1629,50 +1629,15 @@ bool RenderLayerCompositor::has3DContent() const |
return layerHas3DContent(rootRenderLayer()); |
} |
-bool RenderLayerCompositor::allowsIndependentlyCompositedFrames(const FrameView* view) |
-{ |
-#if PLATFORM(MAC) |
- // frames are only independently composited in Mac pre-WebKit2. |
- return view->platformWidget(); |
-#else |
- UNUSED_PARAM(view); |
-#endif |
- return false; |
-} |
- |
bool RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame() const |
{ |
// Parent document content needs to be able to render on top of a composited frame, so correct behavior |
// is to have the parent document become composited too. However, this can cause problems on platforms that |
// use native views for frames (like Mac), so disable that behavior on those platforms for now. |
HTMLFrameOwnerElement* ownerElement = m_renderView->document()->ownerElement(); |
- RenderObject* renderer = ownerElement ? ownerElement->renderer() : 0; |
// If we are the top-level frame, don't propagate. |
- if (!ownerElement) |
- return false; |
- |
- if (!allowsIndependentlyCompositedFrames(m_renderView->frameView())) |
- return true; |
- |
- if (!renderer || !renderer->isRenderPart()) |
- return false; |
- |
- // On Mac, only propagate compositing if the frame is overlapped in the parent |
- // document, or the parent is already compositing, or the main frame is scaled. |
- Page* page = this->page(); |
- if (page && page->pageScaleFactor() != 1) |
- return true; |
- |
- RenderPart* frameRenderer = toRenderPart(renderer); |
- if (frameRenderer->widget()) { |
- ASSERT(frameRenderer->widget()->isFrameView()); |
- FrameView* view = toFrameView(frameRenderer->widget()); |
- if (view->isOverlappedIncludingAncestors() || view->hasCompositingAncestor()) |
- return true; |
- } |
- |
- return false; |
+ return ownerElement; |
} |
bool RenderLayerCompositor::needsToBeComposited(const RenderLayer* layer, RenderLayer::ViewportConstrainedNotCompositedReason* viewportConstrainedNotCompositedReason) const |
@@ -2245,9 +2210,7 @@ bool RenderLayerCompositor::requiresScrollLayer(RootLayerAttachment attachment) |
if (m_renderView->frameView()->delegatesScrolling()) |
return false; |
- // We need to handle our own scrolling if we're: |
- return !m_renderView->frameView()->platformWidget() // viewless (i.e. non-Mac, or Mac in WebKit2) |
- || attachment == RootLayerAttachedViaEnclosingFrame; // a composited frame on Mac |
+ return true; |
} |
static void paintScrollbar(Scrollbar* scrollbar, GraphicsContext& context, const IntRect& clip) |
@@ -2371,9 +2334,6 @@ bool RenderLayerCompositor::keepLayersPixelAligned() const |
static bool shouldCompositeOverflowControls(FrameView* view) |
{ |
- if (view->platformWidget()) |
- return false; |
- |
if (Page* page = view->frame()->page()) { |
if (ScrollingCoordinator* scrollingCoordinator = page->scrollingCoordinator()) |
if (scrollingCoordinator->coordinatesScrollingForFrameView(view)) |