summaryrefslogtreecommitdiffstats
path: root/WebCore/loader/ResourceLoader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/loader/ResourceLoader.cpp')
-rw-r--r--WebCore/loader/ResourceLoader.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/WebCore/loader/ResourceLoader.cpp b/WebCore/loader/ResourceLoader.cpp
index 7a95383..b700fcf 100644
--- a/WebCore/loader/ResourceLoader.cpp
+++ b/WebCore/loader/ResourceLoader.cpp
@@ -510,8 +510,15 @@ void ResourceLoader::receivedCancellation(const AuthenticationChallenge&)
void ResourceLoader::willCacheResponse(ResourceHandle*, CacheStoragePolicy& policy)
{
+ // <rdar://problem/7249553> - There are reports of crashes with this method being called
+ // with a null m_frame->settings(), which can only happen if the frame doesn't have a page.
+ // Sadly we have no reproducible cases of this.
+ // We think that any frame without a page shouldn't have any loads happening in it, yet
+ // there is at least one code path where that is not true.
+ ASSERT(m_frame->settings());
+
// When in private browsing mode, prevent caching to disk
- if (policy == StorageAllowed && m_frame->settings()->privateBrowsingEnabled())
+ if (policy == StorageAllowed && m_frame->settings() && m_frame->settings()->privateBrowsingEnabled())
policy = StorageAllowedInMemoryOnly;
}