зеркало из https://github.com/mozilla/pjs.git
Bug 613360 - Safe use of thread observers in ContentParent. f=josh r=bsemdberg
This commit is contained in:
Родитель
07b1c08f01
Коммит
5a25ab6907
|
@ -225,8 +225,7 @@ ContentParent::Init()
|
|||
nsCOMPtr<nsIThreadInternal>
|
||||
threadInt(do_QueryInterface(NS_GetCurrentThread()));
|
||||
if (threadInt) {
|
||||
threadInt->GetObserver(getter_AddRefs(mOldObserver));
|
||||
threadInt->SetObserver(this);
|
||||
threadInt->AddObserver(this);
|
||||
}
|
||||
if (obs) {
|
||||
obs->NotifyObservers(static_cast<nsIObserver*>(this), "ipc:content-created", nsnull);
|
||||
|
@ -344,7 +343,7 @@ ContentParent::ActorDestroy(ActorDestroyReason why)
|
|||
nsCOMPtr<nsIThreadInternal>
|
||||
threadInt(do_QueryInterface(NS_GetCurrentThread()));
|
||||
if (threadInt)
|
||||
threadInt->SetObserver(mOldObserver);
|
||||
threadInt->RemoveObserver(this);
|
||||
if (mRunToCompletionDepth)
|
||||
mRunToCompletionDepth = 0;
|
||||
|
||||
|
@ -1118,11 +1117,9 @@ ContentParent::RecvLoadURIExternal(const IPC::URI& uri)
|
|||
/* void onDispatchedEvent (in nsIThreadInternal thread); */
|
||||
NS_IMETHODIMP
|
||||
ContentParent::OnDispatchedEvent(nsIThreadInternal *thread)
|
||||
{
|
||||
if (mOldObserver)
|
||||
return mOldObserver->OnDispatchedEvent(thread);
|
||||
|
||||
return NS_OK;
|
||||
{
|
||||
NS_NOTREACHED("OnDispatchedEvent unimplemented");
|
||||
return NS_ERROR_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
/* void onProcessNextEvent (in nsIThreadInternal thread, in boolean mayWait, in unsigned long recursionDepth); */
|
||||
|
@ -1134,9 +1131,6 @@ ContentParent::OnProcessNextEvent(nsIThreadInternal *thread,
|
|||
if (mRunToCompletionDepth)
|
||||
++mRunToCompletionDepth;
|
||||
|
||||
if (mOldObserver)
|
||||
return mOldObserver->OnProcessNextEvent(thread, mayWait, recursionDepth);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -1156,9 +1150,6 @@ ContentParent::AfterProcessNextEvent(nsIThreadInternal *thread,
|
|||
}
|
||||
}
|
||||
|
||||
if (mOldObserver)
|
||||
return mOldObserver->AfterProcessNextEvent(thread, recursionDepth);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -235,7 +235,6 @@ private:
|
|||
PRInt32 mGeolocationWatchID;
|
||||
int mRunToCompletionDepth;
|
||||
bool mShouldCallUnblockChild;
|
||||
nsCOMPtr<nsIThreadObserver> mOldObserver;
|
||||
|
||||
// This is a cache of all of the memory reporters
|
||||
// registered in the child process. To update this, one
|
||||
|
|
Загрузка…
Ссылка в новой задаче