| 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)
|
|
|