Confirmed users
770
edits
| Line 205: | Line 205: | ||
}; | }; | ||
JSObject* | |||
WorkerPrivate::CreateGlobalScope(JSContext* aCx) | |||
{ | |||
AssertIsOnWorkerThread(); | |||
nsRefPtr<WorkerGlobalScope> globalScope; | |||
if (IsSharedWorker()) { | |||
globalScope = new SharedWorkerGlobalScope(this, SharedWorkerName()); | |||
} else if (IsServiceWorker()) { | |||
globalScope = new ServiceWorkerGlobalScope(this, SharedWorkerName()); | |||
} else { | |||
globalScope = new DedicatedWorkerGlobalScope(this); | |||
} | |||
JS::Rooted<JSObject*> global(aCx, globalScope->WrapGlobalObject(aCx)); | |||
NS_ENSURE_TRUE(global, nullptr); | |||
JSAutoCompartment ac(aCx, global); | |||
if (!RegisterBindings(aCx, global)) { | |||
return nullptr; | |||
} | |||
mScope = globalScope.forget(); | |||
JS_FireOnNewGlobalObject(aCx, global); | |||
return global; | |||
} | |||
</source> | </source> | ||
=Shared Worker= | =Shared Worker= | ||