| Index: third_party/WebKit/Source/core/frame/FrameHost.h
|
| diff --git a/third_party/WebKit/Source/core/frame/FrameHost.h b/third_party/WebKit/Source/core/frame/FrameHost.h
|
| index 5850da1ad5807955eac2c440c30c837dba034f43..2bf525c5279654e6d27f74d55a019c1a2742d94c 100644
|
| --- a/third_party/WebKit/Source/core/frame/FrameHost.h
|
| +++ b/third_party/WebKit/Source/core/frame/FrameHost.h
|
| @@ -84,8 +84,16 @@
|
|
|
| DECLARE_TRACE();
|
|
|
| - void incrementSubframeCount();
|
| - void decrementSubframeCount();
|
| + // 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:
|
| @@ -97,6 +105,8 @@
|
| const Member<ConsoleMessageStorage> m_consoleMessageStorage;
|
| const Member<TopDocumentRootScrollerController>
|
| m_globalRootScrollerController;
|
| +
|
| + int m_subframeCount;
|
| };
|
|
|
| } // namespace blink
|
|
|