| 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);
|
| }
|
|
|