Bug 1177727 - MessagePort should call RemoveObserver before calling Release(), r=mccr8

This commit is contained in:
Andrea Marchesini 2015-06-27 16:21:24 -07:00
parent 3479ae4763
commit 241ba42d34

View File

@ -866,6 +866,14 @@ MessagePort::UpdateMustKeepAlive()
mWorkerFeature = nullptr;
}
if (NS_IsMainThread()) {
nsCOMPtr<nsIObserverService> obs =
do_GetService("@mozilla.org/observer-service;1");
if (obs) {
obs->RemoveObserver(this, "inner-window-destroyed");
}
}
Release();
return;
}
@ -900,12 +908,6 @@ MessagePort::Observe(nsISupports* aSubject, const char* aTopic,
NS_ENSURE_SUCCESS(rv, rv);
if (innerID == mInnerID) {
nsCOMPtr<nsIObserverService> obs =
do_GetService("@mozilla.org/observer-service;1");
if (obs) {
obs->RemoveObserver(this, "inner-window-destroyed");
}
Close();
}