summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/page/FrameView.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/page/FrameView.h')
-rw-r--r--Source/WebCore/page/FrameView.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/Source/WebCore/page/FrameView.h b/Source/WebCore/page/FrameView.h
index 6c0ead2..8e79a3a 100644
--- a/Source/WebCore/page/FrameView.h
+++ b/Source/WebCore/page/FrameView.h
@@ -37,6 +37,7 @@ namespace WebCore {
class Color;
class Event;
+class FrameActionScheduler;
class FrameViewPrivate;
class IntRect;
class Node;
@@ -46,8 +47,6 @@ class RenderObject;
class RenderEmbeddedObject;
class RenderScrollbarPart;
-struct ScheduledEvent;
-
template <typename T> class Timer;
class FrameView : public ScrollView {
@@ -147,7 +146,7 @@ public:
void setTransparent(bool isTransparent);
Color baseBackgroundColor() const;
- void setBaseBackgroundColor(Color);
+ void setBaseBackgroundColor(const Color&);
void updateBackgroundRecursively(const Color&, bool);
bool shouldUpdateWhileOffscreen() const;
@@ -181,6 +180,12 @@ public:
void addFixedObject();
void removeFixedObject();
+ // Functions for querying the current scrolled position, negating the effects of overhang
+ // and adjusting for page scale.
+ int scrollXForFixedPosition() const;
+ int scrollYForFixedPosition() const;
+ IntSize scrollOffsetForFixedPosition() const;
+
void beginDeferredRepaints();
void endDeferredRepaints();
void checkStopDelayingDeferredRepaints();
@@ -269,6 +274,9 @@ public:
// FIXME: Remove this method once plugin loading is decoupled from layout.
void flushAnyPendingPostLayoutTasks();
+ void setIsRestoringFromBackForward(bool isRestoring) { m_isRestoringFromBackForward = isRestoring; }
+ bool isRestoringFromBackForward() const { return m_isRestoringFromBackForward; }
+
protected:
virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
virtual void scrollContentsSlowPath(const IntRect& updateRect);
@@ -295,7 +303,6 @@ private:
void updateOverflowStatus(bool horizontalOverflow, bool verticalOverflow);
- void dispatchScheduledEvents();
void performPostLayoutTasks();
virtual void repaintContentRectangle(const IntRect&, bool immediate);
@@ -315,7 +322,6 @@ private:
virtual void getTickmarks(Vector<IntRect>&) const;
virtual void scrollTo(const IntSize&);
virtual void didCompleteRubberBand(const IntSize&) const;
- virtual bool scrollbarWillRenderIntoCompositingLayer() const { return hasCompositedContent() || isEnclosedInCompositingLayer(); }
void deferredRepaintTimerFired(Timer<FrameView>*);
void doDeferredRepaints();
@@ -332,6 +338,8 @@ private:
virtual void updateScrollCorner();
virtual void paintScrollCorner(GraphicsContext*, const IntRect& cornerRect);
+ FrameView* parentFrameView() const;
+
virtual AXObjectCache* axObjectCache() const;
void notifyWidgetsInAllFrames(WidgetNotification);
@@ -378,9 +386,8 @@ private:
String m_mediaType;
String m_mediaTypeWhenNotPrinting;
- unsigned m_enqueueEvents;
- Vector<ScheduledEvent*> m_scheduledEvents;
-
+ OwnPtr<FrameActionScheduler> m_actionScheduler;
+
bool m_overflowStatusDirty;
bool m_horizontalOverflow;
bool m_verticalOverflow;
@@ -408,6 +415,8 @@ private:
bool m_isVisuallyNonEmpty;
bool m_firstVisuallyNonEmptyLayoutCallbackPending;
+ bool m_isRestoringFromBackForward;
+
RefPtr<Node> m_maintainScrollPositionAnchor;
// Renderer to hold our custom scroll corner.