summaryrefslogtreecommitdiffstats
path: root/dom/base/nsDocument.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-02-22 11:47:32 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-02-22 11:47:32 +0100
commit7b7ea5c59a6f282be1d02a199f46483447ec00c1 (patch)
tree8687a74d52001a48b616a8fc30e3ada54d19cb0c /dom/base/nsDocument.cpp
parentb7274fd666e1bb33effc1425701f566bcaa6f7be (diff)
parentcff4a7d0b65b9cfe272d72f7a26e3dcc33ea0a03 (diff)
downloadUXP-7b7ea5c59a6f282be1d02a199f46483447ec00c1.tar
UXP-7b7ea5c59a6f282be1d02a199f46483447ec00c1.tar.gz
UXP-7b7ea5c59a6f282be1d02a199f46483447ec00c1.tar.lz
UXP-7b7ea5c59a6f282be1d02a199f46483447ec00c1.tar.xz
UXP-7b7ea5c59a6f282be1d02a199f46483447ec00c1.zip
Merge branch 'ported-moebius'
Diffstat (limited to 'dom/base/nsDocument.cpp')
-rw-r--r--dom/base/nsDocument.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/dom/base/nsDocument.cpp b/dom/base/nsDocument.cpp
index 8e6920a0e..4926b6c0a 100644
--- a/dom/base/nsDocument.cpp
+++ b/dom/base/nsDocument.cpp
@@ -61,6 +61,7 @@
#include "nsGenericHTMLElement.h"
#include "mozilla/dom/CDATASection.h"
#include "mozilla/dom/ProcessingInstruction.h"
+#include "nsDSURIContentListener.h"
#include "nsDOMString.h"
#include "nsNodeUtils.h"
#include "nsLayoutUtils.h" // for GetFrameForPoint
@@ -2456,6 +2457,15 @@ nsDocument::StartDocumentLoad(const char* aCommand, nsIChannel* aChannel,
NS_ENSURE_SUCCESS(rv, rv);
}
+ // XFO needs to be checked after CSP because it is ignored if
+ // the CSP defines frame-ancestors.
+ if (!nsDSURIContentListener::CheckFrameOptions(aChannel, docShell, NodePrincipal())) {
+ MOZ_LOG(gCspPRLog, LogLevel::Debug,
+ ("XFO doesn't like frame's ancestry, not loading."));
+ // stop! ERROR page!
+ aChannel->Cancel(NS_ERROR_CSP_FRAME_ANCESTOR_VIOLATION);
+ }
+
return NS_OK;
}