зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1435263 - Get rid of WorkerPrivateParent template - part 14 - MaybeWrapAsWorkerRunnable and ProxyReleaseMainThreadObjects, r=bkelly
This commit is contained in:
Родитель
67ce33a460
Коммит
e898847369
|
@ -1719,9 +1719,8 @@ WorkerPrivateParent<Derived>::DispatchDebuggerRunnable(
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
template <class Derived>
|
||||
already_AddRefed<WorkerRunnable>
|
||||
WorkerPrivateParent<Derived>::MaybeWrapAsWorkerRunnable(already_AddRefed<nsIRunnable> aRunnable)
|
||||
WorkerPrivate::MaybeWrapAsWorkerRunnable(already_AddRefed<nsIRunnable> aRunnable)
|
||||
{
|
||||
// May be called on any thread!
|
||||
|
||||
|
@ -1739,8 +1738,7 @@ WorkerPrivateParent<Derived>::MaybeWrapAsWorkerRunnable(already_AddRefed<nsIRunn
|
|||
MOZ_CRASH("All runnables destined for a worker thread must be cancelable!");
|
||||
}
|
||||
|
||||
workerRunnable =
|
||||
new ExternalRunnableWrapper(ParentAsWorkerPrivate(), runnable);
|
||||
workerRunnable = new ExternalRunnableWrapper(this, runnable);
|
||||
return workerRunnable.forget();
|
||||
}
|
||||
|
||||
|
@ -2022,26 +2020,22 @@ WorkerPrivate::ModifyBusyCount(bool aIncrease)
|
|||
return true;
|
||||
}
|
||||
|
||||
template <class Derived>
|
||||
bool
|
||||
WorkerPrivateParent<Derived>::ProxyReleaseMainThreadObjects()
|
||||
WorkerPrivate::ProxyReleaseMainThreadObjects()
|
||||
{
|
||||
AssertIsOnParentThread();
|
||||
|
||||
WorkerPrivate* self = ParentAsWorkerPrivate();
|
||||
MOZ_ASSERT(!self->mMainThreadObjectsForgotten);
|
||||
MOZ_ASSERT(!mMainThreadObjectsForgotten);
|
||||
|
||||
nsCOMPtr<nsILoadGroup> loadGroupToCancel;
|
||||
// If we're not overriden, then do nothing here. Let the load group get
|
||||
// handled in ForgetMainThreadObjects().
|
||||
if (self->mLoadInfo.mInterfaceRequestor) {
|
||||
self->mLoadInfo.mLoadGroup.swap(loadGroupToCancel);
|
||||
if (mLoadInfo.mInterfaceRequestor) {
|
||||
mLoadInfo.mLoadGroup.swap(loadGroupToCancel);
|
||||
}
|
||||
|
||||
bool result = self->mLoadInfo.ProxyReleaseMainThreadObjects(self,
|
||||
loadGroupToCancel);
|
||||
bool result = mLoadInfo.ProxyReleaseMainThreadObjects(this, loadGroupToCancel);
|
||||
|
||||
self->mMainThreadObjectsForgotten = true;
|
||||
mMainThreadObjectsForgotten = true;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -155,12 +155,6 @@ public:
|
|||
nsresult
|
||||
DispatchDebuggerRunnable(already_AddRefed<WorkerRunnable> aDebuggerRunnable);
|
||||
|
||||
already_AddRefed<WorkerRunnable>
|
||||
MaybeWrapAsWorkerRunnable(already_AddRefed<nsIRunnable> aRunnable);
|
||||
|
||||
bool
|
||||
ProxyReleaseMainThreadObjects();
|
||||
|
||||
void
|
||||
UpdateContextOptions(const JS::ContextOptions& aContextOptions);
|
||||
|
||||
|
@ -1382,6 +1376,12 @@ public:
|
|||
void
|
||||
DisableDebugger();
|
||||
|
||||
already_AddRefed<WorkerRunnable>
|
||||
MaybeWrapAsWorkerRunnable(already_AddRefed<nsIRunnable> aRunnable);
|
||||
|
||||
bool
|
||||
ProxyReleaseMainThreadObjects();
|
||||
|
||||
private:
|
||||
WorkerPrivate(WorkerPrivate* aParent,
|
||||
const nsAString& aScriptURL, bool aIsChromeWorker,
|
||||
|
|
Загрузка…
Ссылка в новой задаче