mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1173002 - Set worker system principal flag correctly when created from chrome, r=bz, a=kwierso.
This commit is contained in:
parent
668cc497e7
commit
2f9806beef
@ -983,9 +983,11 @@ private:
|
||||
|
||||
// If the load principal is the system principal then the channel
|
||||
// principal must also be the system principal (we do not allow chrome
|
||||
// code to create workers with non-chrome scripts). Otherwise this channel
|
||||
// principal must be same origin with the load principal (we check again
|
||||
// here in case redirects changed the location of the script).
|
||||
// code to create workers with non-chrome scripts, and if we ever decide
|
||||
// to change this we need to make sure we don't always set
|
||||
// mPrincipalIsSystem to true in WorkerPrivate::GetLoadInfo()). Otherwise
|
||||
// this channel principal must be same origin with the load principal (we
|
||||
// check again here in case redirects changed the location of the script).
|
||||
if (nsContentUtils::IsSystemPrincipal(loadPrincipal)) {
|
||||
if (!nsContentUtils::IsSystemPrincipal(channelPrincipal)) {
|
||||
// See if this is a resource URI. Since JSMs usually come from
|
||||
|
@ -4885,12 +4885,15 @@ WorkerPrivate::GetLoadInfo(JSContext* aCx, nsPIDOMWindow* aWindow,
|
||||
return NS_ERROR_DOM_SECURITY_ERR;
|
||||
}
|
||||
|
||||
// Chrome callers (whether ChromeWorker of Worker) always get the system
|
||||
// principal here as they're allowed to load anything. The script loader may
|
||||
// change the principal later depending on the script uri.
|
||||
// Chrome callers (whether creating a ChromeWorker or Worker) always get the
|
||||
// system principal here as they're allowed to load anything. The script
|
||||
// loader will refuse to run any script that does not also have the system
|
||||
// principal.
|
||||
if (isChrome) {
|
||||
rv = ssm->GetSystemPrincipal(getter_AddRefs(loadInfo.mPrincipal));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
loadInfo.mPrincipalIsSystem = true;
|
||||
}
|
||||
|
||||
// See if we're being called from a window.
|
||||
|
Loading…
Reference in New Issue
Block a user