Index: Source/core/loader/DocumentLoader.cpp |
diff --git a/Source/core/loader/DocumentLoader.cpp b/Source/core/loader/DocumentLoader.cpp |
index ffd8047c6acfe237c8e1f7a356d1a83d458d7dda..4eba35f2fa20319ccff16b4983f06777274af07f 100644 |
--- a/Source/core/loader/DocumentLoader.cpp |
+++ b/Source/core/loader/DocumentLoader.cpp |
@@ -221,7 +221,8 @@ void DocumentLoader::stopLoading() |
if (isLoading()) |
cancelMainResourceLoad(ResourceError::cancelledError(m_request.url())); |
- m_fetcher->stopFetching(); |
+ if (m_fetcher) |
+ m_fetcher->stopFetching(); |
} |
void DocumentLoader::commitIfReady() |
@@ -237,7 +238,7 @@ bool DocumentLoader::isLoading() const |
if (document() && document()->hasActiveParser()) |
return true; |
- return m_loadingMainResource || m_fetcher->isFetching(); |
+ return m_loadingMainResource || (m_fetcher && m_fetcher->isFetching()); |
} |
void DocumentLoader::notifyFinished(Resource* resource) |
@@ -601,7 +602,10 @@ void DocumentLoader::detachFromFrame() |
if (!m_frame) |
return; |
- m_fetcher->clearContext(); |
+ if (m_fetcher) |
+ m_fetcher->clearContext(); |
+ m_fetcher.clear(); |
+ |
m_applicationCacheHost->detachFromDocumentLoader(); |
m_applicationCacheHost.clear(); |
WeakIdentifierMap<DocumentLoader>::notifyObjectDestroyed(this); |
@@ -640,7 +644,8 @@ bool DocumentLoader::maybeCreateArchive() |
return false; |
} |
- m_fetcher->addAllArchiveResources(m_archive.get()); |
+ if (m_fetcher) |
+ m_fetcher->addAllArchiveResources(m_archive.get()); |
ArchiveResource* mainResource = m_archive->mainResource(); |
// The origin is the MHTML file, we need to set the base URL to the document encoded in the MHTML so |
@@ -667,7 +672,8 @@ void DocumentLoader::prepareSubframeArchiveLoadIfNeeded() |
if (!m_archive) |
return; |
- m_fetcher->addAllArchiveResources(m_archive.get()); |
+ if (m_fetcher) |
+ m_fetcher->addAllArchiveResources(m_archive.get()); |
ArchiveResource* mainResource = m_archive->mainResource(); |
m_substituteData = SubstituteData(mainResource->data(), mainResource->mimeType(), mainResource->textEncoding(), KURL()); |
@@ -691,7 +697,8 @@ void DocumentLoader::setDefersLoading(bool defers) |
if (mainResourceLoader() && mainResourceLoader()->isLoadedBy(m_fetcher.get())) |
mainResourceLoader()->setDefersLoading(defers); |
- m_fetcher->setDefersLoading(defers); |
+ if (m_fetcher) |
+ m_fetcher->setDefersLoading(defers); |
} |
bool DocumentLoader::maybeLoadEmpty() |
@@ -778,7 +785,8 @@ void DocumentLoader::attachThreadedDataReceiver(PassRefPtrWillBeRawPtr<ThreadedD |
void DocumentLoader::acceptDataFromThreadedReceiver(const char* data, int dataLength, int encodedDataLength) |
{ |
- m_fetcher->acceptDataFromThreadedReceiver(mainResourceIdentifier(), data, dataLength, encodedDataLength); |
+ if (m_fetcher) |
+ m_fetcher->acceptDataFromThreadedReceiver(mainResourceIdentifier(), data, dataLength, encodedDataLength); |
} |
void DocumentLoader::endWriting(DocumentWriter* writer) |