Bug 466314 - updatingImplicit.html (used by test_offlineMode.html and test_updatingManifest.html) crashes SeaMonkey, r=dcamp, sr=jst

This commit is contained in:
Honza Bambas 2009-01-28 16:07:23 +01:00
parent f7d566032e
commit 75a83656c3
2 changed files with 13 additions and 7 deletions

View File

@ -59,9 +59,11 @@ _TEST_FILES = \
test_changingManifest.html \
test_refetchManifest.html \
test_offlineIFrame.html \
test_offlineMode.html \
test_bug445544.html \
test_foreign.html \
test_fallback.html \
test_updatingManifest.html \
445544_part1.html \
445544_part2.html \
445544.cacheManifest \
@ -87,6 +89,9 @@ _TEST_FILES = \
foreign2.cacheManifest \
foreign2.cacheManifest^headers^ \
foreign2.html \
notonwhitelist.html \
onwhitelist.html \
onwhitelist.html^headers^ \
updatingIFrame.html \
updatingIFrame.html^headers^ \
updatingImplicit.html \
@ -104,12 +109,5 @@ _TEST_FILES = \
offlineChild.html \
$(NULL)
# Bug 466314 - updatingImplicit.html (used by test_offlineMode.html and test_updatingManifest.html) crashes SeaMonkey
# test_offlineMode.html \
# notonwhitelist.html \
# test_updatingManifest.html \
# onwhitelist.html \
# onwhitelist.html^headers^ \
libs:: $(_TEST_FILES)
$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/tests/$(relativesrcdir)

View File

@ -67,6 +67,7 @@
#include "nsServiceManagerUtils.h"
#include "nsStreamUtils.h"
#include "nsThreadUtils.h"
#include "nsProxyRelease.h"
#include "prlog.h"
static nsOfflineCacheUpdateService *gOfflineCacheUpdateService = nsnull;
@ -1828,6 +1829,13 @@ nsOfflineCacheUpdate::Finish()
{
LOG(("nsOfflineCacheUpdate::Finish [%p]", this));
// Because call to service->UpdateFinished(this) at the end of this method
// may relese the last reference to this object but we still want to work
// with it after Finish() call ended, make sure to release this instance in
// the next thread loop round.
NS_ADDREF_THIS();
NS_ProxyRelease(NS_GetCurrentThread(), this, PR_TRUE);
mState = STATE_FINISHED;
nsOfflineCacheUpdateService* service =