summaryrefslogtreecommitdiff
path: root/Source/WebCore/loader/MainResourceLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/loader/MainResourceLoader.cpp')
-rw-r--r--Source/WebCore/loader/MainResourceLoader.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/WebCore/loader/MainResourceLoader.cpp b/Source/WebCore/loader/MainResourceLoader.cpp
index 715a4ba89..dc93460b3 100644
--- a/Source/WebCore/loader/MainResourceLoader.cpp
+++ b/Source/WebCore/loader/MainResourceLoader.cpp
@@ -651,10 +651,14 @@ bool MainResourceLoader::loadNow(ResourceRequest& r)
return false;
}
-bool MainResourceLoader::load(const ResourceRequest& r, const SubstituteData& substituteData)
+void MainResourceLoader::load(const ResourceRequest& r, const SubstituteData& substituteData)
{
ASSERT(!m_handle);
+ // It appears that it is possible for this load to be cancelled and derefenced by the DocumentLoader
+ // in willSendRequest() if loadNow() is called.
+ RefPtr<MainResourceLoader> protect(this);
+
m_substituteData = substituteData;
ASSERT(documentLoader()->timing()->navigationStart());
@@ -679,8 +683,6 @@ bool MainResourceLoader::load(const ResourceRequest& r, const SubstituteData& su
}
if (defer)
m_initialRequest = request;
-
- return true;
}
void MainResourceLoader::setDefersLoading(bool defers)