summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parser/html/nsHtml5TreeOpExecutor.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/parser/html/nsHtml5TreeOpExecutor.cpp b/parser/html/nsHtml5TreeOpExecutor.cpp
index b0eabb13d..468449698 100644
--- a/parser/html/nsHtml5TreeOpExecutor.cpp
+++ b/parser/html/nsHtml5TreeOpExecutor.cpp
@@ -1041,12 +1041,17 @@ nsHtml5TreeOpExecutor::AddSpeculationCSP(const nsAString& aCSP)
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
- nsIPrincipal* principal = mDocument->NodePrincipal();
+ nsCOMPtr<nsIPrincipal> principal = mDocument->NodePrincipal();
nsCOMPtr<nsIContentSecurityPolicy> preloadCsp;
nsCOMPtr<nsIDOMDocument> domDoc = do_QueryInterface(mDocument);
nsresult rv = principal->EnsurePreloadCSP(domDoc, getter_AddRefs(preloadCsp));
NS_ENSURE_SUCCESS_VOID(rv);
+ if (!preloadCsp) {
+ // XXX: System principals can't preload CSP. We're done here.
+ return;
+ }
+
// please note that meta CSPs and CSPs delivered through a header need
// to be joined together.
rv = preloadCsp->AppendPolicy(aCSP,