mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Bug 1151646 - Cleanup, r=khuey.
This commit is contained in:
parent
f6cb233b56
commit
8f3a68440b
@ -309,6 +309,7 @@ IDBFactory::CreateForJSInternal(JSContext* aCx,
|
|||||||
if (aPrincipalInfo->type() != PrincipalInfo::TContentPrincipalInfo &&
|
if (aPrincipalInfo->type() != PrincipalInfo::TContentPrincipalInfo &&
|
||||||
aPrincipalInfo->type() != PrincipalInfo::TSystemPrincipalInfo) {
|
aPrincipalInfo->type() != PrincipalInfo::TSystemPrincipalInfo) {
|
||||||
NS_WARNING("IndexedDB not allowed for this principal!");
|
NS_WARNING("IndexedDB not allowed for this principal!");
|
||||||
|
aPrincipalInfo = nullptr;
|
||||||
*aFactory = nullptr;
|
*aFactory = nullptr;
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
@ -777,9 +777,47 @@ AsmJSCacheOpenEntryForWrite(JS::Handle<JSObject*> aGlobal,
|
|||||||
aSize, aMemory, aHandle);
|
aSize, aMemory, aHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct WorkerThreadRuntimePrivate : public PerThreadAtomCache
|
class WorkerJSRuntime;
|
||||||
|
|
||||||
|
class WorkerThreadRuntimePrivate : private PerThreadAtomCache
|
||||||
{
|
{
|
||||||
|
friend class WorkerJSRuntime;
|
||||||
|
|
||||||
WorkerPrivate* mWorkerPrivate;
|
WorkerPrivate* mWorkerPrivate;
|
||||||
|
|
||||||
|
public:
|
||||||
|
// This can't return null, but we can't lose the "Get" prefix in the name or
|
||||||
|
// it will be ambiguous with the WorkerPrivate class name.
|
||||||
|
WorkerPrivate*
|
||||||
|
GetWorkerPrivate() const
|
||||||
|
{
|
||||||
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
|
MOZ_ASSERT(mWorkerPrivate);
|
||||||
|
|
||||||
|
return mWorkerPrivate;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
WorkerThreadRuntimePrivate(WorkerPrivate* aWorkerPrivate)
|
||||||
|
: mWorkerPrivate(aWorkerPrivate)
|
||||||
|
{
|
||||||
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
|
|
||||||
|
// Zero out the base class members.
|
||||||
|
memset(this, 0, sizeof(PerThreadAtomCache));
|
||||||
|
|
||||||
|
MOZ_ASSERT(mWorkerPrivate);
|
||||||
|
}
|
||||||
|
|
||||||
|
~WorkerThreadRuntimePrivate()
|
||||||
|
{
|
||||||
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkerThreadRuntimePrivate(const WorkerThreadRuntimePrivate&) = delete;
|
||||||
|
|
||||||
|
WorkerThreadRuntimePrivate&
|
||||||
|
operator=(const WorkerThreadRuntimePrivate&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
JSContext*
|
JSContext*
|
||||||
@ -828,11 +866,6 @@ CreateJSContextForWorker(WorkerPrivate* aWorkerPrivate, JSRuntime* aRuntime)
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto rtPrivate = new WorkerThreadRuntimePrivate();
|
|
||||||
memset(rtPrivate, 0, sizeof(WorkerThreadRuntimePrivate));
|
|
||||||
rtPrivate->mWorkerPrivate = aWorkerPrivate;
|
|
||||||
JS_SetRuntimePrivate(aRuntime, rtPrivate);
|
|
||||||
|
|
||||||
JS_SetErrorReporter(aRuntime, ErrorReporter);
|
JS_SetErrorReporter(aRuntime, ErrorReporter);
|
||||||
|
|
||||||
JS_SetInterruptCallback(aRuntime, InterruptCallback);
|
JS_SetInterruptCallback(aRuntime, InterruptCallback);
|
||||||
@ -920,16 +953,23 @@ public:
|
|||||||
WORKER_DEFAULT_NURSERY_SIZE),
|
WORKER_DEFAULT_NURSERY_SIZE),
|
||||||
mWorkerPrivate(aWorkerPrivate)
|
mWorkerPrivate(aWorkerPrivate)
|
||||||
{
|
{
|
||||||
js::SetPreserveWrapperCallback(Runtime(), PreserveWrapper);
|
JSRuntime* rt = Runtime();
|
||||||
JS_InitDestroyPrincipalsCallback(Runtime(), DestroyWorkerPrincipals);
|
MOZ_ASSERT(rt);
|
||||||
JS_SetWrapObjectCallbacks(Runtime(), &WrapObjectCallbacks);
|
|
||||||
|
JS_SetRuntimePrivate(rt, new WorkerThreadRuntimePrivate(aWorkerPrivate));
|
||||||
|
|
||||||
|
js::SetPreserveWrapperCallback(rt, PreserveWrapper);
|
||||||
|
JS_InitDestroyPrincipalsCallback(rt, DestroyWorkerPrincipals);
|
||||||
|
JS_SetWrapObjectCallbacks(rt, &WrapObjectCallbacks);
|
||||||
}
|
}
|
||||||
|
|
||||||
~WorkerJSRuntime()
|
~WorkerJSRuntime()
|
||||||
{
|
{
|
||||||
auto rtPrivate = static_cast<WorkerThreadRuntimePrivate*>(JS_GetRuntimePrivate(Runtime()));
|
JSRuntime* rt = Runtime();
|
||||||
delete rtPrivate;
|
MOZ_ASSERT(rt);
|
||||||
JS_SetRuntimePrivate(Runtime(), nullptr);
|
|
||||||
|
delete static_cast<WorkerThreadRuntimePrivate*>(JS_GetRuntimePrivate(rt));
|
||||||
|
JS_SetRuntimePrivate(rt, nullptr);
|
||||||
|
|
||||||
// The worker global should be unrooted and the shutdown cycle collection
|
// The worker global should be unrooted and the shutdown cycle collection
|
||||||
// should break all remaining cycles. The superclass destructor will run
|
// should break all remaining cycles. The superclass destructor will run
|
||||||
@ -1311,7 +1351,8 @@ GetWorkerPrivateFromContext(JSContext* aCx)
|
|||||||
void* rtPrivate = JS_GetRuntimePrivate(rt);
|
void* rtPrivate = JS_GetRuntimePrivate(rt);
|
||||||
MOZ_ASSERT(rtPrivate);
|
MOZ_ASSERT(rtPrivate);
|
||||||
|
|
||||||
return static_cast<WorkerThreadRuntimePrivate*>(rtPrivate)->mWorkerPrivate;
|
return
|
||||||
|
static_cast<WorkerThreadRuntimePrivate*>(rtPrivate)->GetWorkerPrivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
WorkerPrivate*
|
WorkerPrivate*
|
||||||
@ -1330,7 +1371,8 @@ GetCurrentThreadWorkerPrivate()
|
|||||||
void* rtPrivate = JS_GetRuntimePrivate(rt);
|
void* rtPrivate = JS_GetRuntimePrivate(rt);
|
||||||
MOZ_ASSERT(rtPrivate);
|
MOZ_ASSERT(rtPrivate);
|
||||||
|
|
||||||
return static_cast<WorkerThreadRuntimePrivate*>(rtPrivate)->mWorkerPrivate;
|
return
|
||||||
|
static_cast<WorkerThreadRuntimePrivate*>(rtPrivate)->GetWorkerPrivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
Loading…
Reference in New Issue
Block a user