From 2a3843999dd2d8f7360cbc459f0cd2840621e150 Mon Sep 17 00:00:00 2001 From: Honza Bambas Date: Wed, 31 Dec 2014 18:22:46 -0800 Subject: [PATCH] Bug 1102172 - Fix possible appache update hang. r=jduell --- netwerk/protocol/http/nsHttpChannel.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/netwerk/protocol/http/nsHttpChannel.cpp b/netwerk/protocol/http/nsHttpChannel.cpp index 0506edc8d896..22637ec56ea1 100644 --- a/netwerk/protocol/http/nsHttpChannel.cpp +++ b/netwerk/protocol/http/nsHttpChannel.cpp @@ -3266,7 +3266,9 @@ nsHttpChannel::OnCacheEntryAvailable(nsICacheEntry *entry, nsresult rv; LOG(("nsHttpChannel::OnCacheEntryAvailable [this=%p entry=%p " - "new=%d appcache=%p status=%x]\n", this, entry, aNew, aAppCache, status)); + "new=%d appcache=%p status=%x mAppCache=%p mAppCacheForWrite=%p]\n", + this, entry, aNew, aAppCache, status, + mApplicationCache.get(), mApplicationCacheForWrite.get())); // if the channel's already fired onStopRequest, then we should ignore // this event. @@ -3376,10 +3378,11 @@ nsHttpChannel::OnOfflineCacheEntryAvailable(nsICacheEntry *aEntry, nsresult rv; - if (!mApplicationCache) - mApplicationCache = aAppCache; - if (NS_SUCCEEDED(aEntryStatus)) { + if (!mApplicationCache) { + mApplicationCache = aAppCache; + } + // We successfully opened an offline cache session and the entry, // so indicate we will load from the offline cache. mLoadedFromApplicationCache = true; @@ -3396,6 +3399,10 @@ nsHttpChannel::OnOfflineCacheEntryAvailable(nsICacheEntry *aEntry, } if (!mApplicationCacheForWrite && !mFallbackChannel) { + if (!mApplicationCache) { + mApplicationCache = aAppCache; + } + // Check for namespace match. nsCOMPtr namespaceEntry; rv = mApplicationCache->GetMatchingNamespace(mSpec,