mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
Bug 1493629 - Better management of CSP EventListener for workers, r=ckerschb
This commit is contained in:
parent
40ca28382a
commit
8bf0b5f63b
@ -1471,9 +1471,9 @@ WorkerPrivate::SetCSP(nsIContentSecurityPolicy* aCSP)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
aCSP->EnsureEventTarget(mMainThreadEventTarget);
|
aCSP->EnsureEventTarget(mMainThreadEventTarget);
|
||||||
aCSP->SetEventListener(mCSPEventListener);
|
|
||||||
|
|
||||||
mLoadInfo.mCSP = aCSP;
|
mLoadInfo.mCSP = aCSP;
|
||||||
|
EnsureCSPEventListener();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
@ -1493,7 +1493,6 @@ WorkerPrivate::SetCSPFromHeaderValues(const nsACString& aCSPHeaderValue,
|
|||||||
}
|
}
|
||||||
|
|
||||||
csp->EnsureEventTarget(mMainThreadEventTarget);
|
csp->EnsureEventTarget(mMainThreadEventTarget);
|
||||||
csp->SetEventListener(mCSPEventListener);
|
|
||||||
|
|
||||||
// If there's a CSP header, apply it.
|
// If there's a CSP header, apply it.
|
||||||
if (!cspHeaderValue.IsEmpty()) {
|
if (!cspHeaderValue.IsEmpty()) {
|
||||||
@ -1515,6 +1514,7 @@ WorkerPrivate::SetCSPFromHeaderValues(const nsACString& aCSPHeaderValue,
|
|||||||
mLoadInfo.mCSP = csp;
|
mLoadInfo.mCSP = csp;
|
||||||
mLoadInfo.mEvalAllowed = evalAllowed;
|
mLoadInfo.mEvalAllowed = evalAllowed;
|
||||||
mLoadInfo.mReportCSPViolations = reportEvalViolations;
|
mLoadInfo.mReportCSPViolations = reportEvalViolations;
|
||||||
|
EnsureCSPEventListener();
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
@ -3445,10 +3445,12 @@ WorkerPrivate::EnsureClientSource()
|
|||||||
bool
|
bool
|
||||||
WorkerPrivate::EnsureCSPEventListener()
|
WorkerPrivate::EnsureCSPEventListener()
|
||||||
{
|
{
|
||||||
|
if (!mCSPEventListener) {
|
||||||
mCSPEventListener = WorkerCSPEventListener::Create(this);
|
mCSPEventListener = WorkerCSPEventListener::Create(this);
|
||||||
if (NS_WARN_IF(!mCSPEventListener)) {
|
if (NS_WARN_IF(!mCSPEventListener)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mLoadInfo.mCSP) {
|
if (mLoadInfo.mCSP) {
|
||||||
mLoadInfo.mCSP->SetEventListener(mCSPEventListener);
|
mLoadInfo.mCSP->SetEventListener(mCSPEventListener);
|
||||||
|
Loading…
Reference in New Issue
Block a user