diff options
Diffstat (limited to 'Source/WebCore/loader/FrameLoader.cpp')
-rw-r--r-- | Source/WebCore/loader/FrameLoader.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/Source/WebCore/loader/FrameLoader.cpp b/Source/WebCore/loader/FrameLoader.cpp index 548aa2c11..d36d11049 100644 --- a/Source/WebCore/loader/FrameLoader.cpp +++ b/Source/WebCore/loader/FrameLoader.cpp @@ -2017,6 +2017,8 @@ void FrameLoader::checkLoadCompleteForThisFrame() { ASSERT(m_client->hasWebView()); + Settings* settings = m_frame->settings(); + switch (m_state) { case FrameStateProvisional: { if (m_delegateIsHandlingProvisionalLoadError) @@ -2091,11 +2093,13 @@ void FrameLoader::checkLoadCompleteForThisFrame() if (m_stateMachine.creatingInitialEmptyDocument() || !m_stateMachine.committedFirstRealDocumentLoad()) return; - if (Page* page = m_frame->page()) { - page->progress()->progressCompleted(m_frame); + if (!settings->needsDidFinishLoadOrderQuirk()) { + if (Page* page = m_frame->page()) { + page->progress()->progressCompleted(m_frame); - if (m_frame == page->mainFrame()) - page->resetRelevantPaintedObjectCounter(); + if (m_frame == page->mainFrame()) + page->resetRelevantPaintedObjectCounter(); + } } const ResourceError& error = dl->mainDocumentError(); @@ -2109,6 +2113,15 @@ void FrameLoader::checkLoadCompleteForThisFrame() loadingEvent = AXObjectCache::AXLoadingFinished; } + if (settings->needsDidFinishLoadOrderQuirk()) { + if (Page* page = m_frame->page()) { + page->progress()->progressCompleted(m_frame); + + if (m_frame == page->mainFrame()) + page->resetRelevantPaintedObjectCounter(); + } + } + // Notify accessibility. if (AXObjectCache::accessibilityEnabled()) m_frame->document()->axObjectCache()->frameLoadingEventNotification(m_frame, loadingEvent); |