summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/FrameLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/loader/FrameLoader.cpp')
-rw-r--r--Source/WebCore/loader/FrameLoader.cpp21
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);