author | Boris Zbarsky <bzbarsky@mit.edu> |
Wed, 01 Feb 2017 15:43:38 -0500 | |
changeset 378745 | 127a99a30553c8133b65faa13e94607ede70f8de |
parent 378744 | 0c0dcb4003a97c6a43fe60f8d41fad55e601d746 |
child 378746 | 65ceed81954925d78bc794d4ca78d041a89b22e4 |
push id | 7198 |
push user | jlorenzo@mozilla.com |
push date | Tue, 18 Apr 2017 12:07:49 +0000 |
treeherder | mozilla-beta@d57aa49c3948 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bholley |
bugs | 1335368 |
milestone | 54.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/workers/WorkerPrivate.cpp +++ b/dom/workers/WorkerPrivate.cpp @@ -4270,25 +4270,25 @@ WorkerPrivate::Constructor(const GlobalO { return WorkerPrivate::Constructor(aGlobal, aScriptURL, false, WorkerTypeDedicated, EmptyCString(), nullptr, aRv); } // static bool -WorkerPrivate::WorkerAvailable(JSContext* /* unused */, JSObject* /* unused */) +WorkerPrivate::WorkerAvailable(JSContext* aCx, JSObject* /* unused */) { // If we're already on a worker workers are clearly enabled. if (!NS_IsMainThread()) { return true; } // If our caller is chrome, workers are always available. - if (nsContentUtils::IsCallerChrome()) { + if (nsContentUtils::IsSystemCaller(aCx)) { return true; } // Else check the pref. return Preferences::GetBool(PREF_WORKERS_ENABLED); } // static @@ -4307,17 +4307,17 @@ ChromeWorkerPrivate::Constructor(const G bool ChromeWorkerPrivate::WorkerAvailable(JSContext* aCx, JSObject* /* unused */) { // Chrome is always allowed to use workers, and content is never // allowed to use ChromeWorker, so all we have to check is the // caller. However, chrome workers apparently might not have a // system principal, so we have to check for them manually. if (NS_IsMainThread()) { - return nsContentUtils::IsCallerChrome(); + return nsContentUtils::IsSystemCaller(aCx); } return GetWorkerPrivateFromContext(aCx)->IsChromeWorker(); } // static already_AddRefed<WorkerPrivate> WorkerPrivate::Constructor(const GlobalObject& aGlobal, @@ -4488,17 +4488,17 @@ WorkerPrivate::GetLoadInfo(JSContext* aC AssertIsOnMainThread(); // Make sure that the IndexedDatabaseManager is set up Unused << NS_WARN_IF(!IndexedDatabaseManager::GetOrCreate()); nsIScriptSecurityManager* ssm = nsContentUtils::GetSecurityManager(); MOZ_ASSERT(ssm); - bool isChrome = nsContentUtils::IsCallerChrome(); + bool isChrome = nsContentUtils::IsSystemCaller(aCx); // First check to make sure the caller has permission to make a privileged // worker if they called the ChromeWorker/ChromeSharedWorker constructor. if (aIsChromeWorker && !isChrome) { return NS_ERROR_DOM_SECURITY_ERR; } // Chrome callers (whether creating a ChromeWorker or Worker) always get the