summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/RenderLayerCompositor.h
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-06-02 12:07:03 +0100
committerBen Murdoch <benm@google.com>2011-06-10 10:47:21 +0100
commit2daae5fd11344eaa88a0d92b0f6d65f8d2255c00 (patch)
treee4964fbd1cb70599f7718ff03e50ea1dab33890b /Source/WebCore/rendering/RenderLayerCompositor.h
parent87bdf0060a247bfbe668342b87e0874182e0ffa9 (diff)
downloadexternal_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.zip
external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.gz
external_webkit-2daae5fd11344eaa88a0d92b0f6d65f8d2255c00.tar.bz2
Merge WebKit at r84325: Initial merge by git.
Change-Id: Ic1a909300ecc0a13ddc6b4e784371d2ac6e3d59b
Diffstat (limited to 'Source/WebCore/rendering/RenderLayerCompositor.h')
-rw-r--r--Source/WebCore/rendering/RenderLayerCompositor.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/Source/WebCore/rendering/RenderLayerCompositor.h b/Source/WebCore/rendering/RenderLayerCompositor.h
index c3deb3f..0315050 100644
--- a/Source/WebCore/rendering/RenderLayerCompositor.h
+++ b/Source/WebCore/rendering/RenderLayerCompositor.h
@@ -36,7 +36,7 @@ namespace WebCore {
class GraphicsLayer;
class RenderEmbeddedObject;
-class RenderIFrame;
+class RenderPart;
#if ENABLE(VIDEO)
class RenderVideo;
#endif
@@ -138,7 +138,7 @@ public:
enum RootLayerAttachment {
RootLayerUnattached,
RootLayerAttachedViaChromeClient,
- RootLayerAttachedViaEnclosingIframe
+ RootLayerAttachedViaEnclosingFrame
};
RootLayerAttachment rootLayerAttachment() const { return m_rootLayerAttachment; }
@@ -161,18 +161,18 @@ public:
// Most platforms connect compositing layer trees between iframes and their parent document.
// Some (currently just Mac) allow iframes to do their own compositing.
- static bool allowsIndependentlyCompositedIFrames(const FrameView*);
- bool shouldPropagateCompositingToEnclosingIFrame() const;
+ static bool allowsIndependentlyCompositedFrames(const FrameView*);
+ bool shouldPropagateCompositingToEnclosingFrame() const;
- // FIXME: This should be a RenderIFrame*
- HTMLFrameOwnerElement* enclosingIFrameElement() const;
+ HTMLFrameOwnerElement* enclosingFrameElement() const;
- static RenderLayerCompositor* iframeContentsCompositor(RenderIFrame*);
+ static RenderLayerCompositor* frameContentsCompositor(RenderPart*);
// Return true if the layers changed.
- static bool parentIFrameContentLayers(RenderIFrame*);
+ static bool parentFrameContentLayers(RenderPart*);
// Update the geometry of the layers used for clipping and scrolling in frames.
- void frameViewDidChangeSize(const IntPoint& contentsOffset = IntPoint());
+ void frameViewDidChangeLocation(const IntPoint& contentsOffset);
+ void frameViewDidChangeSize();
void frameViewDidScroll(const IntPoint& = IntPoint());
String layerTreeAsText(bool showDebugInfo = false);
@@ -184,11 +184,15 @@ public:
void updateContentsScale(float, RenderLayer* = 0);
+ GraphicsLayer* layerForHorizontalScrollbar() const { return m_layerForHorizontalScrollbar.get(); }
+ GraphicsLayer* layerForVerticalScrollbar() const { return m_layerForVerticalScrollbar.get(); }
+ GraphicsLayer* layerForScrollCorner() const { return m_layerForScrollCorner.get(); }
+
private:
// GraphicsLayerClient Implementation
virtual void notifyAnimationStarted(const GraphicsLayer*, double) { }
virtual void notifySyncRequired(const GraphicsLayer*) { scheduleLayerFlush(); }
- virtual void paintContents(const GraphicsLayer*, GraphicsContext&, GraphicsLayerPaintingPhase, const IntRect&) { }
+ virtual void paintContents(const GraphicsLayer*, GraphicsContext&, GraphicsLayerPaintingPhase, const IntRect&);
// These calls return false always. They are saying that the layers associated with this client
// (the clipLayer and scrollLayer) should never show debugging info.
@@ -236,7 +240,9 @@ private:
void detachRootPlatformLayer();
void rootLayerAttachmentChanged();
-
+
+ void updateOverflowControlsLayers();
+
void scheduleNeedsStyleRecalc(Element*);
void notifyIFramesOfCompositingChange();
@@ -246,7 +252,7 @@ private:
bool requiresCompositingForVideo(RenderObject*) const;
bool requiresCompositingForCanvas(RenderObject*) const;
bool requiresCompositingForPlugin(RenderObject*) const;
- bool requiresCompositingForIFrame(RenderObject*) const;
+ bool requiresCompositingForFrame(RenderObject*) const;
bool requiresCompositingWhenDescendantsAreCompositing(RenderObject*) const;
bool requiresCompositingForFullScreen(RenderObject*) const;
@@ -256,7 +262,10 @@ private:
#endif
bool requiresScrollLayer(RootLayerAttachment) const;
-
+ bool requiresHorizontalScrollbarLayer() const;
+ bool requiresVerticalScrollbarLayer() const;
+ bool requiresScrollCornerLayer() const;
+
private:
RenderView* m_renderView;
OwnPtr<GraphicsLayer> m_rootPlatformLayer;
@@ -284,7 +293,14 @@ private:
// Enclosing clipping layer for iframe content
OwnPtr<GraphicsLayer> m_clipLayer;
OwnPtr<GraphicsLayer> m_scrollLayer;
-
+
+ // Enclosing layer for overflow controls and the clipping layer
+ OwnPtr<GraphicsLayer> m_overflowControlsHostLayer;
+
+ // Layers for overflow controls
+ OwnPtr<GraphicsLayer> m_layerForHorizontalScrollbar;
+ OwnPtr<GraphicsLayer> m_layerForVerticalScrollbar;
+ OwnPtr<GraphicsLayer> m_layerForScrollCorner;
#if PROFILE_LAYER_REBUILD
int m_rootLayerUpdateCount;
#endif