summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderNamedFlowThread.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderNamedFlowThread.h')
-rw-r--r--Source/WebCore/rendering/RenderNamedFlowThread.h22
1 files changed, 19 insertions, 3 deletions
diff --git a/Source/WebCore/rendering/RenderNamedFlowThread.h b/Source/WebCore/rendering/RenderNamedFlowThread.h
index 2bd438bbc..c0c493ec8 100644
--- a/Source/WebCore/rendering/RenderNamedFlowThread.h
+++ b/Source/WebCore/rendering/RenderNamedFlowThread.h
@@ -45,9 +45,10 @@ typedef ListHashSet<Node*> NamedFlowContentNodes;
class RenderNamedFlowThread : public RenderFlowThread {
public:
- RenderNamedFlowThread(Node*, PassRefPtr<WebKitNamedFlow>);
virtual ~RenderNamedFlowThread();
+ static RenderNamedFlowThread* createAnonymous(Document*, PassRefPtr<WebKitNamedFlow>);
+
const AtomicString& flowThreadName() const;
const RenderRegionList& invalidRenderRegionList() const { return m_invalidRegionList; }
@@ -67,6 +68,9 @@ public:
virtual void addRegionToThread(RenderRegion*) OVERRIDE;
virtual void removeRegionFromThread(RenderRegion*) OVERRIDE;
+ bool overset() const { return m_overset; }
+ void computeOversetStateForRegions(LayoutUnit oldClientAfterEdge);
+
void registerNamedFlowContentNode(Node*);
void unregisterNamedFlowContentNode(Node*);
const NamedFlowContentNodes& contentNodes() const { return m_contentNodes; }
@@ -79,17 +83,26 @@ protected:
void resetMarkForDestruction();
private:
+ RenderNamedFlowThread(PassRefPtr<WebKitNamedFlow>);
+
virtual const char* renderName() const OVERRIDE;
virtual bool isRenderNamedFlowThread() const OVERRIDE { return true; }
+ virtual bool isChildAllowed(RenderObject*, RenderStyle*) const OVERRIDE;
virtual void dispatchRegionLayoutUpdateEvent() OVERRIDE;
+ virtual void dispatchRegionOversetChangeEvent() OVERRIDE;
bool dependsOn(RenderNamedFlowThread* otherRenderFlowThread) const;
void addDependencyOnFlowThread(RenderNamedFlowThread*);
void removeDependencyOnFlowThread(RenderNamedFlowThread*);
+
+ void addRegionToNamedFlowThread(RenderRegion*);
+
void checkInvalidRegions();
+
bool canBeDestroyed() const { return m_invalidRegionList.isEmpty() && m_regionList.isEmpty() && m_contentNodes.isEmpty(); }
void regionLayoutUpdateEventTimerFired(Timer<RenderNamedFlowThread>*);
+ void regionOversetChangeEventTimerFired(Timer<RenderNamedFlowThread>*);
void clearContentNodes();
private:
@@ -111,21 +124,24 @@ private:
RenderRegionList m_invalidRegionList;
+ bool m_overset : 1;
+
// The DOM Object that represents a named flow.
RefPtr<WebKitNamedFlow> m_namedFlow;
Timer<RenderNamedFlowThread> m_regionLayoutUpdateEventTimer;
+ Timer<RenderNamedFlowThread> m_regionOversetChangeEventTimer;
};
inline RenderNamedFlowThread* toRenderNamedFlowThread(RenderObject* object)
{
- ASSERT(!object || object->isRenderNamedFlowThread());
+ ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderNamedFlowThread());
return static_cast<RenderNamedFlowThread*>(object);
}
inline const RenderNamedFlowThread* toRenderNamedFlowThread(const RenderObject* object)
{
- ASSERT(!object || object->isRenderNamedFlowThread());
+ ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isRenderNamedFlowThread());
return static_cast<const RenderNamedFlowThread*>(object);
}