Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1343)

Unified Diff: Source/core/loader/DocumentLoader.cpp

Issue 1229263003: Add an empty boolean to WebFrameClient::didFinishDocumentLoad (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: empty -> documentIsEmpty Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/loader/DocumentLoader.h ('k') | Source/core/loader/EmptyClients.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/loader/DocumentLoader.cpp
diff --git a/Source/core/loader/DocumentLoader.cpp b/Source/core/loader/DocumentLoader.cpp
index a4e725313047f147b5ec1cc853ab42085698a0e1..47c324ddfd7b5cd7b3de488c15d6e338d27d9574 100644
--- a/Source/core/loader/DocumentLoader.cpp
+++ b/Source/core/loader/DocumentLoader.cpp
@@ -87,13 +87,12 @@ DocumentLoader::DocumentLoader(LocalFrame* frame, const ResourceRequest& req, co
, m_originalRequest(req)
, m_substituteData(substituteData)
, m_request(req)
- , m_committed(false)
, m_isClientRedirect(false)
, m_replacesCurrentHistoryItem(false)
, m_navigationType(NavigationTypeOther)
- , m_loadingMainResource(false)
, m_timeOfLastDataReceived(0.0)
, m_applicationCacheHost(ApplicationCacheHost::create(this))
+ , m_state(NotStarted)
{
}
@@ -205,7 +204,7 @@ void DocumentLoader::mainReceivedError(const ResourceError& error)
if (!frameLoader())
return;
m_mainDocumentError = error;
- clearMainResourceLoader();
+ m_state = MainResourceDone;
frameLoader()->receivedMainResourceError(this, error);
clearMainResourceHandle();
}
@@ -226,8 +225,8 @@ void DocumentLoader::stopLoading()
void DocumentLoader::commitIfReady()
{
- if (!m_committed) {
- m_committed = true;
+ if (m_state < Committed) {
+ m_state = Committed;
frameLoader()->commitProvisionalLoad();
}
}
@@ -237,7 +236,7 @@ bool DocumentLoader::isLoading() const
if (document() && document()->hasActiveParser())
return true;
- return m_loadingMainResource || m_fetcher->isFetching();
+ return (m_state > NotStarted && m_state < MainResourceDone) || m_fetcher->isFetching();
}
void DocumentLoader::notifyFinished(Resource* resource)
@@ -283,7 +282,7 @@ void DocumentLoader::finishedLoading(double finishTime)
if (!m_mainDocumentError.isNull())
return;
- clearMainResourceLoader();
+ m_state = MainResourceDone;
// If the document specified an application cache manifest, it violates the author's intent if we store it in the memory cache
// and deny the appcache the chance to intercept it in the future, so remove from the memory cache.
@@ -530,6 +529,7 @@ void DocumentLoader::ensureWriter(const AtomicString& mimeType, const KURL& over
void DocumentLoader::commitData(const char* bytes, size_t length)
{
+ ASSERT(m_state < MainResourceDone);
ensureWriter(m_response.mimeType());
// This can happen if document.close() is called by an event handler while
@@ -539,6 +539,9 @@ void DocumentLoader::commitData(const char* bytes, size_t length)
return;
}
+ if (length)
+ m_state = DataReceived;
+
m_writer->addData(bytes, length);
}
@@ -610,11 +613,6 @@ void DocumentLoader::detachFromFrame()
m_frame = nullptr;
}
-void DocumentLoader::clearMainResourceLoader()
-{
- m_loadingMainResource = false;
-}
-
void DocumentLoader::clearMainResourceHandle()
{
if (!m_mainResource)
@@ -714,8 +712,8 @@ void DocumentLoader::startLoadingMainResource()
m_mainDocumentError = ResourceError();
timing().markNavigationStart();
ASSERT(!m_mainResource);
- ASSERT(!m_loadingMainResource);
- m_loadingMainResource = true;
+ ASSERT(m_state == NotStarted);
+ m_state = Provisional;
if (maybeLoadEmpty())
return;
« no previous file with comments | « Source/core/loader/DocumentLoader.h ('k') | Source/core/loader/EmptyClients.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698