Index: third_party/WebKit/Source/core/frame/FrameHost.cpp |
diff --git a/third_party/WebKit/Source/core/frame/FrameHost.cpp b/third_party/WebKit/Source/core/frame/FrameHost.cpp |
index dc19cfae5d8d030aae4cb9e72feec6f504e89037..e7ffb9b2a3e5b2da1bf7b3f0dbb239e8290e99fe 100644 |
--- a/third_party/WebKit/Source/core/frame/FrameHost.cpp |
+++ b/third_party/WebKit/Source/core/frame/FrameHost.cpp |
@@ -53,7 +53,8 @@ |
m_page->chromeClient())), |
m_consoleMessageStorage(new ConsoleMessageStorage()), |
m_globalRootScrollerController( |
- TopDocumentRootScrollerController::create(page)) {} |
+ TopDocumentRootScrollerController::create(page)), |
+ m_subframeCount(0) {} |
// Explicitly in the .cpp to avoid default constructor in .h |
FrameHost::~FrameHost() {} |
@@ -111,16 +112,23 @@ |
visitor->trace(m_globalRootScrollerController); |
} |
-void FrameHost::incrementSubframeCount() { |
- page().incrementSubframeCount(); |
+#if DCHECK_IS_ON() |
+void checkFrameCountConsistency(int expectedFrameCount, Frame* frame) { |
+ ASSERT(expectedFrameCount >= 0); |
+ |
+ int actualFrameCount = 0; |
+ for (; frame; frame = frame->tree().traverseNext()) |
+ ++actualFrameCount; |
+ |
+ ASSERT(expectedFrameCount == actualFrameCount); |
} |
- |
-void FrameHost::decrementSubframeCount() { |
- page().decrementSubframeCount(); |
-} |
+#endif |
int FrameHost::subframeCount() const { |
- return page().subframeCount(); |
+#if DCHECK_IS_ON() |
+ checkFrameCountConsistency(m_subframeCount + 1, m_page->mainFrame()); |
+#endif |
+ return m_subframeCount; |
} |
} // namespace blink |