| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "core/loader/HttpEquiv.h" | 5 #include "core/loader/HttpEquiv.h" |
| 6 | 6 |
| 7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
| 8 #include "core/dom/ScriptableDocumentParser.h" | 8 #include "core/dom/ScriptableDocumentParser.h" |
| 9 #include "core/dom/StyleEngine.h" | 9 #include "core/dom/StyleEngine.h" |
| 10 #include "core/fetch/ClientHintsPreferences.h" | 10 #include "core/fetch/ClientHintsPreferences.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 OriginTrialContext::from(&document)->addToken(content); | 60 OriginTrialContext::from(&document)->addToken(content); |
| 61 } | 61 } |
| 62 } | 62 } |
| 63 | 63 |
| 64 void HttpEquiv::processHttpEquivContentSecurityPolicy( | 64 void HttpEquiv::processHttpEquivContentSecurityPolicy( |
| 65 Document& document, | 65 Document& document, |
| 66 const AtomicString& equiv, | 66 const AtomicString& equiv, |
| 67 const AtomicString& content) { | 67 const AtomicString& content) { |
| 68 if (document.importLoader()) | 68 if (document.importLoader()) |
| 69 return; | 69 return; |
| 70 if (equalIgnoringCase(equiv, "content-security-policy")) | 70 if (equalIgnoringCase(equiv, "content-security-policy")) { |
| 71 document.contentSecurityPolicy()->didReceiveHeader( | 71 document.contentSecurityPolicy()->didReceiveHeader( |
| 72 content, ContentSecurityPolicyHeaderTypeEnforce, | 72 content, ContentSecurityPolicyHeaderTypeEnforce, |
| 73 ContentSecurityPolicyHeaderSourceMeta); | 73 ContentSecurityPolicyHeaderSourceMeta); |
| 74 else if (equalIgnoringCase(equiv, "content-security-policy-report-only")) | 74 } else if (equalIgnoringCase(equiv, "content-security-policy-report-only")) { |
| 75 document.contentSecurityPolicy()->didReceiveHeader( | 75 document.contentSecurityPolicy()->didReceiveHeader( |
| 76 content, ContentSecurityPolicyHeaderTypeReport, | 76 content, ContentSecurityPolicyHeaderTypeReport, |
| 77 ContentSecurityPolicyHeaderSourceMeta); | 77 ContentSecurityPolicyHeaderSourceMeta); |
| 78 else | 78 } else { |
| 79 NOTREACHED(); | 79 NOTREACHED(); |
| 80 } |
| 80 } | 81 } |
| 81 | 82 |
| 82 void HttpEquiv::processHttpEquivAcceptCH(Document& document, | 83 void HttpEquiv::processHttpEquivAcceptCH(Document& document, |
| 83 const AtomicString& content) { | 84 const AtomicString& content) { |
| 84 if (!document.frame()) | 85 if (!document.frame()) |
| 85 return; | 86 return; |
| 86 | 87 |
| 87 UseCounter::count(document, UseCounter::ClientHintsMetaAcceptCH); | 88 UseCounter::count(document, UseCounter::ClientHintsMetaAcceptCH); |
| 88 document.clientHintsPreferences().updateFromAcceptClientHintsHeader( | 89 document.clientHintsPreferences().updateFromAcceptClientHintsHeader( |
| 89 content, document.fetcher()); | 90 content, document.fetcher()); |
| 90 } | 91 } |
| 91 | 92 |
| 92 void HttpEquiv::processHttpEquivDefaultStyle(Document& document, | 93 void HttpEquiv::processHttpEquivDefaultStyle(Document& document, |
| 93 const AtomicString& content) { | 94 const AtomicString& content) { |
| 94 document.styleEngine().setHttpDefaultStyle(content); | 95 document.styleEngine().setHttpDefaultStyle(content); |
| 95 } | 96 } |
| 96 | 97 |
| 97 void HttpEquiv::processHttpEquivRefresh(Document& document, | 98 void HttpEquiv::processHttpEquivRefresh(Document& document, |
| 98 const AtomicString& content) { | 99 const AtomicString& content) { |
| 99 UseCounter::count(document, UseCounter::MetaRefresh); | 100 UseCounter::count(document, UseCounter::MetaRefresh); |
| 100 if (!document.contentSecurityPolicy()->allowInlineScript( | 101 if (!document.contentSecurityPolicy()->allowInlineScript( |
| 101 KURL(), "", ParserInserted, OrdinalNumber(), "", | 102 KURL(), "", ParserInserted, OrdinalNumber(), "", |
| 102 ContentSecurityPolicy::SuppressReport)) | 103 ContentSecurityPolicy::SuppressReport)) { |
| 103 UseCounter::count(document, | 104 UseCounter::count(document, |
| 104 UseCounter::MetaRefreshWhenCSPBlocksInlineScript); | 105 UseCounter::MetaRefreshWhenCSPBlocksInlineScript); |
| 106 } |
| 105 | 107 |
| 106 document.maybeHandleHttpRefresh(content, Document::HttpRefreshFromMetaTag); | 108 document.maybeHandleHttpRefresh(content, Document::HttpRefreshFromMetaTag); |
| 107 } | 109 } |
| 108 | 110 |
| 109 void HttpEquiv::processHttpEquivSetCookie(Document& document, | 111 void HttpEquiv::processHttpEquivSetCookie(Document& document, |
| 110 const AtomicString& content) { | 112 const AtomicString& content) { |
| 111 // FIXME: make setCookie work on XML documents too; e.g. in case of | 113 // FIXME: make setCookie work on XML documents too; e.g. in case of |
| 112 // <html:meta.....> | 114 // <html:meta.....> |
| 113 if (!document.isHTMLDocument()) | 115 if (!document.isHTMLDocument()) |
| 114 return; | 116 return; |
| 115 | 117 |
| 116 UseCounter::count(document, UseCounter::MetaSetCookie); | 118 UseCounter::count(document, UseCounter::MetaSetCookie); |
| 117 if (!document.contentSecurityPolicy()->allowInlineScript( | 119 if (!document.contentSecurityPolicy()->allowInlineScript( |
| 118 KURL(), "", ParserInserted, OrdinalNumber(), "", | 120 KURL(), "", ParserInserted, OrdinalNumber(), "", |
| 119 ContentSecurityPolicy::SuppressReport)) | 121 ContentSecurityPolicy::SuppressReport)) { |
| 120 UseCounter::count(document, | 122 UseCounter::count(document, |
| 121 UseCounter::MetaSetCookieWhenCSPBlocksInlineScript); | 123 UseCounter::MetaSetCookieWhenCSPBlocksInlineScript); |
| 124 } |
| 122 | 125 |
| 123 // Exception (for sandboxed documents) ignored. | 126 // Exception (for sandboxed documents) ignored. |
| 124 document.setCookie(content, IGNORE_EXCEPTION); | 127 document.setCookie(content, IGNORE_EXCEPTION); |
| 125 } | 128 } |
| 126 | 129 |
| 127 } // namespace blink | 130 } // namespace blink |
| OLD | NEW |