Bug 782594 - Make some methods in uriloader/ infallible; r=bz

This commit is contained in:
Aryeh Gregor
2012-08-14 12:10:42 +03:00
parent 4993674349
commit 8d37239f5b
4 changed files with 17 additions and 29 deletions

View File

@@ -90,7 +90,7 @@ OfflineCacheUpdateChild::~OfflineCacheUpdateChild()
LOG(("OfflineCacheUpdateChild::~OfflineCacheUpdateChild [%p]", this));
}
nsresult
void
OfflineCacheUpdateChild::GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers)
{
for (int32_t i = 0; i < mWeakObservers.Count(); i++) {
@@ -105,8 +105,6 @@ OfflineCacheUpdateChild::GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserve
for (int32_t i = 0; i < mObservers.Count(); i++) {
aObservers.AppendObject(mObservers[i]);
}
return NS_OK;
}
void
@@ -445,8 +443,7 @@ OfflineCacheUpdateChild::RecvAssociateDocuments(const nsCString &cacheGroupId,
}
nsCOMArray<nsIOfflineCacheUpdateObserver> observers;
rv = GatherObservers(observers);
NS_ENSURE_SUCCESS(rv, rv);
GatherObservers(observers);
for (int32_t i = 0; i < observers.Count(); i++)
observers[i]->ApplicationCacheAvailable(cache);
@@ -477,8 +474,7 @@ OfflineCacheUpdateChild::RecvNotifyStateEvent(const uint32_t &event,
}
nsCOMArray<nsIOfflineCacheUpdateObserver> observers;
nsresult rv = GatherObservers(observers);
NS_ENSURE_SUCCESS(rv, rv);
GatherObservers(observers);
for (int32_t i = 0; i < observers.Count(); i++)
observers[i]->UpdateStateChanged(this, event);

View File

@@ -50,7 +50,7 @@ public:
private:
nsresult AssociateDocument(nsIDOMDocument *aDocument,
nsIApplicationCache *aApplicationCache);
nsresult GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers);
void GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers);
nsresult Finish();
void RefcountHitZero();

View File

@@ -1528,8 +1528,7 @@ nsOfflineCacheUpdate::LoadCompleted(nsOfflineCacheUpdateItem *aItem)
return;
}
rv = NotifyState(nsIOfflineCacheUpdateObserver::STATE_ITEMCOMPLETED);
if (NS_FAILED(rv)) return;
NotifyState(nsIOfflineCacheUpdateObserver::STATE_ITEMCOMPLETED);
ProcessNextURI();
}
@@ -1774,7 +1773,7 @@ nsOfflineCacheUpdate::ProcessNextURI()
return NS_DispatchToCurrentThread(this);
}
nsresult
void
nsOfflineCacheUpdate::GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers)
{
for (int32_t i = 0; i < mWeakObservers.Count(); i++) {
@@ -1789,38 +1788,30 @@ nsOfflineCacheUpdate::GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver>
for (int32_t i = 0; i < mObservers.Count(); i++) {
aObservers.AppendObject(mObservers[i]);
}
return NS_OK;
}
nsresult
void
nsOfflineCacheUpdate::NotifyState(uint32_t state)
{
LOG(("nsOfflineCacheUpdate::NotifyState [%p, %d]", this, state));
nsCOMArray<nsIOfflineCacheUpdateObserver> observers;
nsresult rv = GatherObservers(observers);
NS_ENSURE_SUCCESS(rv, rv);
GatherObservers(observers);
for (int32_t i = 0; i < observers.Count(); i++) {
observers[i]->UpdateStateChanged(this, state);
}
return NS_OK;
}
nsresult
void
nsOfflineCacheUpdate::AssociateDocuments(nsIApplicationCache* cache)
{
nsCOMArray<nsIOfflineCacheUpdateObserver> observers;
nsresult rv = GatherObservers(observers);
NS_ENSURE_SUCCESS(rv, rv);
GatherObservers(observers);
for (int32_t i = 0; i < observers.Count(); i++) {
observers[i]->ApplicationCacheAvailable(cache);
}
return NS_OK;
}
void
@@ -2235,17 +2226,18 @@ nsOfflineCacheUpdate::UpdateStateChanged(nsIOfflineCacheUpdate *aUpdate,
mSucceeded = succeeded;
}
nsresult rv = NotifyState(aState);
NotifyState(aState);
if (aState == nsIOfflineCacheUpdateObserver::STATE_FINISHED)
aUpdate->RemoveObserver(this);
return rv;
return NS_OK;
}
NS_IMETHODIMP
nsOfflineCacheUpdate::ApplicationCacheAvailable(nsIApplicationCache *applicationCache)
{
return AssociateDocuments(applicationCache);
AssociateDocuments(applicationCache);
return NS_OK;
}
//-----------------------------------------------------------------------------

View File

@@ -227,10 +227,10 @@ private:
nsresult AddExistingItems(uint32_t aType,
nsTArray<nsCString>* namespaceFilter = nullptr);
nsresult ScheduleImplicit();
nsresult AssociateDocuments(nsIApplicationCache* cache);
void AssociateDocuments(nsIApplicationCache* cache);
nsresult GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers);
nsresult NotifyState(uint32_t state);
void GatherObservers(nsCOMArray<nsIOfflineCacheUpdateObserver> &aObservers);
void NotifyState(uint32_t state);
nsresult Finish();
nsresult FinishNoNotify();