| Index: Source/core/frame/FrameHost.h
|
| diff --git a/Source/core/frame/FrameHost.h b/Source/core/frame/FrameHost.h
|
| index 40b4ec49e3d805618b6bae898e340fd7ab10eacb..adf7a5c9d52ee6464b5e72644e8f7df42bfafc79 100644
|
| --- a/Source/core/frame/FrameHost.h
|
| +++ b/Source/core/frame/FrameHost.h
|
| @@ -85,6 +85,15 @@ public:
|
|
|
| void trace(Visitor*);
|
|
|
| + // Don't allow more than a certain number of frames in a page.
|
| + // This seems like a reasonable upper bound, and otherwise mutually
|
| + // recursive frameset pages can quickly bring the program to its knees
|
| + // with exponential growth in the number of frames.
|
| + static const int maxNumberOfFrames = 1000;
|
| + void incrementSubframeCount() { ++m_subframeCount; }
|
| + void decrementSubframeCount() { ASSERT(m_subframeCount); --m_subframeCount; }
|
| + int subframeCount() const;
|
| +
|
| private:
|
| explicit FrameHost(Page&);
|
|
|
| @@ -94,6 +103,7 @@ private:
|
| const OwnPtrWillBeMember<ConsoleMessageStorage> m_consoleMessageStorage;
|
|
|
| AtomicString m_overrideEncoding;
|
| + int m_subframeCount;
|
| };
|
|
|
| }
|
|
|