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

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

Issue 2331213002: Add `disposition` to SecurityPolicyViolationEvent (Closed)
Patch Set: Update SecurityPolicyViolationEventInit.idl, update test Created 4 years, 3 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..ee2a89efb70f59dc8d66f2458539290f5cfb6b28
--- /dev/null
+++ b/third_party/WebKit/Source/core/events/SecurityPolicyViolationEvent.cpp
@@ -0,0 +1,77 @@
+/*
+ * 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 {
+
+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();
+ if (initializer.hasDisposition()) {
+ if (initializer.disposition() == "report")
+ m_disposition = ContentSecurityPolicyHeaderTypeReport;
+ else
+ m_disposition = ContentSecurityPolicyHeaderTypeEnforce;
Mike West 2016/09/29 10:11:50 Nit: This seems simpler as a ternary if (e.g. `m_d
+ }
+ 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, ("enforce"));
+ DEFINE_STATIC_LOCAL(const String, report, ("report"));
Mike West 2016/09/29 10:11:50 Nit: If you pull these up into an anonymous namesp
+
+ if (m_disposition == ContentSecurityPolicyHeaderTypeReport)
+ return report;
+ return enforce;
+}
+
+} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698