diff --git a/content/base/src/nsDocument.cpp b/content/base/src/nsDocument.cpp index 8a44a60dbe16..1c0cbf7e9b7b 100644 --- a/content/base/src/nsDocument.cpp +++ b/content/base/src/nsDocument.cpp @@ -2463,8 +2463,11 @@ nsDocument::StartDocumentLoad(const char* aCommand, nsIChannel* aChannel, NS_ENSURE_SUCCESS(rv, rv); } - nsresult rv = InitCSP(aChannel); - NS_ENSURE_SUCCESS(rv, rv); + // If this is not a data document, set CSP. + if (!mLoadedAsData) { + nsresult rv = InitCSP(aChannel); + NS_ENSURE_SUCCESS(rv, rv); + } return NS_OK; } diff --git a/content/base/test/csp/file_CSP_bug941404.html b/content/base/test/csp/file_CSP_bug941404.html new file mode 100644 index 000000000000..94f4499c3c8a --- /dev/null +++ b/content/base/test/csp/file_CSP_bug941404.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + diff --git a/content/base/test/csp/file_CSP_bug941404_xhr.html b/content/base/test/csp/file_CSP_bug941404_xhr.html new file mode 100644 index 000000000000..22e176f20889 --- /dev/null +++ b/content/base/test/csp/file_CSP_bug941404_xhr.html @@ -0,0 +1,5 @@ + + + + + diff --git a/content/base/test/csp/file_CSP_bug941404_xhr.html^headers^ b/content/base/test/csp/file_CSP_bug941404_xhr.html^headers^ new file mode 100644 index 000000000000..1e5f70cc3755 --- /dev/null +++ b/content/base/test/csp/file_CSP_bug941404_xhr.html^headers^ @@ -0,0 +1 @@ +Content-Security-Policy: default-src 'none' 'unsafe-inline' 'unsafe-eval' diff --git a/content/base/test/csp/mochitest.ini b/content/base/test/csp/mochitest.ini index fc9dcc91222e..9a28ce000fba 100644 --- a/content/base/test/csp/mochitest.ini +++ b/content/base/test/csp/mochitest.ini @@ -99,6 +99,9 @@ support-files = file_policyuri_regression_from_multipolicy_policy file_nonce_source.html file_nonce_source.html^headers^ + file_CSP_bug941404.html + file_CSP_bug941404_xhr.html + file_CSP_bug941404_xhr.html^headers^ [test_CSP.html] [test_CSP_bug663567.html] @@ -119,3 +122,4 @@ support-files = [test_CSP_bug909029.html] [test_policyuri_regression_from_multipolicy.html] [test_nonce_source.html] +[test_CSP_bug941404.html] diff --git a/content/base/test/csp/test_CSP_bug941404.html b/content/base/test/csp/test_CSP_bug941404.html new file mode 100644 index 000000000000..5cf1ee8c1d7d --- /dev/null +++ b/content/base/test/csp/test_CSP_bug941404.html @@ -0,0 +1,115 @@ + + + + + Bug 941404 - Data documents should not set CSP + + + + +

+ + + + + + + diff --git a/testing/mochitest/b2g.json b/testing/mochitest/b2g.json index 90eeee181578..a570013b2451 100644 --- a/testing/mochitest/b2g.json +++ b/testing/mochitest/b2g.json @@ -214,6 +214,7 @@ "content/base/test/csp/test_CSP_bug909029.html":"observer not working", "content/base/test/csp/test_policyuri_regression_from_multipolicy.html":"observer not working", "content/base/test/csp/test_nonce_source.html":"observer not working", + "content/base/test/csp/test_CSP_bug941404.html":"observer not working", "content/base/test/test_CrossSiteXHR_origin.html":"https not working, bug 907770", "content/base/test/test_plugin_freezing.html":"",