Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(543)

Unified Diff: third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp

Issue 2331213002: Add `disposition` to SecurityPolicyViolationEvent (Closed)
Patch Set: Fix a typo in rebased test expectation Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp
diff --git a/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp b/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..e59b5292e749de5fd9a9d801a9226e2bf77ca65f
--- /dev/null
+++ b/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp
@@ -0,0 +1,80 @@
+/*
+ * Copyright (C) 2016 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "core/events/SecurityPolicyViolationEvent.h"
+
+namespace blink {
+
+namespace {
+
+const char kEnforce[] = "enforce";
+const char kReport[] = "report";
+
+} // namespace
+
+SecurityPolicyViolationEvent::SecurityPolicyViolationEvent(
+ const AtomicString& type,
+ const SecurityPolicyViolationEventInit& initializer)
+ : Event(type, initializer),
+ m_disposition(ContentSecurityPolicyHeaderTypeEnforce),
+ m_lineNumber(0),
+ m_columnNumber(0),
+ m_statusCode(0) {
+ if (initializer.hasDocumentURI())
+ m_documentURI = initializer.documentURI();
+ if (initializer.hasReferrer())
+ m_referrer = initializer.referrer();
+ if (initializer.hasBlockedURI())
+ m_blockedURI = initializer.blockedURI();
+ if (initializer.hasViolatedDirective())
+ m_violatedDirective = initializer.violatedDirective();
+ if (initializer.hasEffectiveDirective())
+ m_effectiveDirective = initializer.effectiveDirective();
+ if (initializer.hasOriginalPolicy())
+ m_originalPolicy = initializer.originalPolicy();
+ m_disposition = initializer.disposition() == kReport
+ ? ContentSecurityPolicyHeaderTypeReport
+ : ContentSecurityPolicyHeaderTypeEnforce;
+ if (initializer.hasSourceFile())
+ m_sourceFile = initializer.sourceFile();
+ if (initializer.hasLineNumber())
+ m_lineNumber = initializer.lineNumber();
+ if (initializer.hasColumnNumber())
+ m_columnNumber = initializer.columnNumber();
+ if (initializer.hasStatusCode())
+ m_statusCode = initializer.statusCode();
+}
+
+const String& SecurityPolicyViolationEvent::disposition() const {
+ DEFINE_STATIC_LOCAL(const String, enforce, (kEnforce));
+ DEFINE_STATIC_LOCAL(const String, report, (kReport));
+
+ if (m_disposition == ContentSecurityPolicyHeaderTypeReport)
+ return report;
+ return enforce;
+}
+
+} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698