Index: Source/core/xml/XSLTProcessor.cpp |
diff --git a/Source/core/xml/XSLTProcessor.cpp b/Source/core/xml/XSLTProcessor.cpp |
index 40df7d23ae4e55f07fc71052f01dc1c4c1ef5ea0..d346ec6ab90bec90f8128bcc08d732a8d80258a5 100644 |
--- a/Source/core/xml/XSLTProcessor.cpp |
+++ b/Source/core/xml/XSLTProcessor.cpp |
@@ -31,6 +31,7 @@ |
#include "core/frame/FrameView.h" |
#include "core/frame/LocalFrame.h" |
#include "core/frame/csp/ContentSecurityPolicy.h" |
+#include "core/xml/DocumentXSLT.h" |
#include "platform/weborigin/SecurityOrigin.h" |
#include "wtf/Assertions.h" |
@@ -83,10 +84,13 @@ PassRefPtrWillBeRawPtr<Document> XSLTProcessor::createDocumentFromSource(const S |
view->clear(); |
if (oldDocument) { |
- result->setTransformSourceDocument(oldDocument.get()); |
+ DocumentXSLT::from(*result).setTransformSourceDocument(oldDocument.get()); |
result->updateSecurityOrigin(oldDocument->securityOrigin()); |
result->setCookieURL(oldDocument->cookieURL()); |
- result->initContentSecurityPolicy(); |
+ |
+ RefPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create(); |
+ csp->copyStateFrom(oldDocument->contentSecurityPolicy()); |
+ result->initContentSecurityPolicy(csp); |
} |
} else { |
result = LocalDOMWindow::createDocument(sourceMIMEType, init, forceXHTML); |