Index: third_party/WebKit/Source/core/page/Page.cpp |
diff --git a/third_party/WebKit/Source/core/page/Page.cpp b/third_party/WebKit/Source/core/page/Page.cpp |
index 9f0f41c7b54da782a8403ff3ba28394b572689b2..8e101779021d5f6d4fd426f306f187837094c347 100644 |
--- a/third_party/WebKit/Source/core/page/Page.cpp |
+++ b/third_party/WebKit/Source/core/page/Page.cpp |
@@ -260,8 +260,17 @@ void Page::setSuspended(bool suspend) { |
m_suspended = suspend; |
for (Frame* frame = mainFrame(); frame; |
frame = frame->tree().traverseNext()) { |
- if (frame->isLocalFrame()) |
- toLocalFrame(frame)->loader().setDefersLoading(suspend); |
+ if (!frame->isLocalFrame()) |
+ continue; |
+ LocalFrame* localFrame = toLocalFrame(frame); |
+ if (Document* document = localFrame->document()) { |
+ if (suspend) |
+ document->suspendScheduledTasks(); |
+ else |
+ document->resumeScheduledTasks(); |
+ } |
+ |
+ localFrame->loader().setDefersLoading(suspend); |
} |
} |