| Index: Source/core/page/ScopedPageLoadDeferrer.cpp
|
| diff --git a/Source/core/page/ScopedPageLoadDeferrer.cpp b/Source/core/page/ScopedPageLoadDeferrer.cpp
|
| index 4f223261e726b670afde9e5ae11defa7c735a925..1387aef793672fcdcf376fd39504212cb4b80322 100644
|
| --- a/Source/core/page/ScopedPageLoadDeferrer.cpp
|
| +++ b/Source/core/page/ScopedPageLoadDeferrer.cpp
|
| @@ -49,8 +49,10 @@ ScopedPageLoadDeferrer::ScopedPageLoadDeferrer(Page* exclusion)
|
|
|
| // This code is not logically part of load deferring, but we do not want JS code executed
|
| // beneath modal windows or sheets, which is exactly when ScopedPageLoadDeferrer is used.
|
| - for (LocalFrame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext())
|
| - frame->document()->suspendScheduledTasks();
|
| + for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| + if (frame->isLocalFrame())
|
| + toLocalFrame(frame)->document()->suspendScheduledTasks();
|
| + }
|
| }
|
|
|
| size_t count = m_deferredFrames.size();
|
| @@ -66,8 +68,10 @@ ScopedPageLoadDeferrer::~ScopedPageLoadDeferrer()
|
| if (Page* page = m_deferredFrames[i]->page()) {
|
| page->setDefersLoading(false);
|
|
|
| - for (LocalFrame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext())
|
| - frame->document()->resumeScheduledTasks();
|
| + for (Frame* frame = page->mainFrame(); frame; frame = frame->tree().traverseNext()) {
|
| + if (frame->isLocalFrame())
|
| + toLocalFrame(frame)->document()->resumeScheduledTasks();
|
| + }
|
| }
|
| }
|
| }
|
|
|