Index: Source/core/frame/csp/ContentSecurityPolicy.h |
diff --git a/Source/core/frame/csp/ContentSecurityPolicy.h b/Source/core/frame/csp/ContentSecurityPolicy.h |
index 01ea44033ea58698d0a935a62aa7dfa6687ee57d..d7d7a69ff9007ee76d6b87e40ab7db54541333a4 100644 |
--- a/Source/core/frame/csp/ContentSecurityPolicy.h |
+++ b/Source/core/frame/csp/ContentSecurityPolicy.h |
@@ -48,6 +48,7 @@ class OrdinalNumber; |
namespace blink { |
class ContentSecurityPolicyResponseHeaders; |
+class ConsoleMessage; |
class CSPDirectiveList; |
class CSPSource; |
class DOMStringList; |
@@ -58,6 +59,7 @@ class SecurityOrigin; |
typedef int SandboxFlags; |
typedef Vector<OwnPtr<CSPDirectiveList> > CSPDirectiveListVector; |
+typedef Vector<RefPtrWillBeRawPtr<ConsoleMessage> > ConsoleMessageVector; |
class ContentSecurityPolicy : public RefCounted<ContentSecurityPolicy> { |
WTF_MAKE_FAST_ALLOCATED; |
@@ -154,20 +156,22 @@ public: |
bool isActive() const; |
- void reportDirectiveAsSourceExpression(const String& directiveName, const String& sourceExpression) const; |
- void reportDuplicateDirective(const String&) const; |
- void reportInvalidDirectiveValueCharacter(const String& directiveName, const String& value) const; |
- void reportInvalidPathCharacter(const String& directiveName, const String& value, const char) const; |
- void reportInvalidPluginTypes(const String&) const; |
- void reportInvalidSandboxFlags(const String&) const; |
- void reportInvalidSourceExpression(const String& directiveName, const String& source) const; |
- void reportInvalidReflectedXSS(const String&) const; |
- void reportMissingReportURI(const String&) const; |
- void reportUnsupportedDirective(const String&) const; |
- void reportInvalidInReportOnly(const String&) const; |
- void reportInvalidReferrer(const String&) const; |
- void reportReportOnlyInMeta(const String&) const; |
- void reportMetaOutsideHead(const String&) const; |
+ void logToConsole(PassRefPtr<ConsoleMessage>); |
+ |
+ void reportDirectiveAsSourceExpression(const String& directiveName, const String& sourceExpression); |
+ void reportDuplicateDirective(const String&); |
+ void reportInvalidDirectiveValueCharacter(const String& directiveName, const String& value); |
+ void reportInvalidPathCharacter(const String& directiveName, const String& value, const char); |
+ void reportInvalidPluginTypes(const String&); |
+ void reportInvalidSandboxFlags(const String&); |
+ void reportInvalidSourceExpression(const String& directiveName, const String& source); |
+ void reportInvalidReflectedXSS(const String&); |
+ void reportMissingReportURI(const String&); |
+ void reportUnsupportedDirective(const String&); |
+ void reportInvalidInReportOnly(const String&); |
+ void reportInvalidReferrer(const String&); |
+ void reportReportOnlyInMeta(const String&); |
+ void reportMetaOutsideHead(const String&); |
void reportViolation(const String& directiveText, const String& effectiveDirective, const String& consoleMessage, const KURL& blockedURL, const Vector<KURL>& reportURIs, const String& header); |
void reportBlockedScriptExecutionToInspector(const String& directiveText) const; |
@@ -196,7 +200,7 @@ private: |
Document* document() const; |
SecurityOrigin* securityOrigin() const; |
- void logToConsole(const String& message, MessageLevel = ErrorMessageLevel) const; |
+ void logToConsole(const String& message, MessageLevel = ErrorMessageLevel); |
void addPolicyFromHeaderValue(const String&, ContentSecurityPolicyHeaderType, ContentSecurityPolicyHeaderSource); |
bool shouldSendViolationReport(const String&) const; |
@@ -205,6 +209,7 @@ private: |
ExecutionContext* m_executionContext; |
bool m_overrideInlineStyleAllowed; |
CSPDirectiveListVector m_policies; |
+ ConsoleMessageVector m_consoleMessages; |
HashSet<unsigned, AlreadyHashed> m_violationReportsSent; |