Index: third_party/WebKit/Source/core/loader/FrameLoader.cpp |
diff --git a/third_party/WebKit/Source/core/loader/FrameLoader.cpp b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
index 038cf60a8afc2b21412fab348d49efb7f0661d53..32ee8b2841f9181dc8094162518fc3b2b10fa395 100644 |
--- a/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
+++ b/third_party/WebKit/Source/core/loader/FrameLoader.cpp |
@@ -1036,13 +1036,14 @@ bool FrameLoader::prepareForCommit() |
RefPtrWillBeRawPtr<DocumentLoader> pdl = m_provisionalDocumentLoader; |
if (m_frame->document()) { |
- unsigned totalNodeCount = InstanceCounters::counterValue(InstanceCounters::NodeCounter); |
- int nodeCount = static_cast<int>(totalNodeCount); |
- for (Document* document : Document::liveDocumentSet()) { |
- if (document != m_frame->document()) |
- nodeCount -= document->nodeCount(); |
+ unsigned nodeCount = 0; |
+ for (Frame* frame = m_frame; frame; frame = frame->tree().traverseNext()) { |
+ if (frame->isLocalFrame()) { |
+ LocalFrame* localFrame = toLocalFrame(frame); |
+ nodeCount += localFrame->document()->nodeCount(); |
+ } |
} |
- ASSERT(nodeCount >= 0); |
+ unsigned totalNodeCount = InstanceCounters::counterValue(InstanceCounters::NodeCounter); |
float ratio = static_cast<float>(nodeCount) / totalNodeCount; |
ThreadState::current()->schedulePageNavigationGCIfNeeded(ratio); |
} |