FeaturePolicyViolationReportBody.cpp (2514B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "mozilla/dom/FeaturePolicyViolationReportBody.h" 8 9 #include "mozilla/JSONWriter.h" 10 #include "mozilla/dom/FeaturePolicyBinding.h" 11 12 namespace mozilla::dom { 13 14 FeaturePolicyViolationReportBody::FeaturePolicyViolationReportBody( 15 nsIGlobalObject* aGlobal, const nsAString& aFeatureId, 16 const nsACString& aSourceFile, const Nullable<int32_t>& aLineNumber, 17 const Nullable<int32_t>& aColumnNumber, const nsAString& aDisposition) 18 : ReportBody(aGlobal), 19 mFeatureId(aFeatureId), 20 mSourceFile(aSourceFile), 21 mLineNumber(aLineNumber), 22 mColumnNumber(aColumnNumber), 23 mDisposition(aDisposition) {} 24 25 FeaturePolicyViolationReportBody::~FeaturePolicyViolationReportBody() = default; 26 27 JSObject* FeaturePolicyViolationReportBody::WrapObject( 28 JSContext* aCx, JS::Handle<JSObject*> aGivenProto) { 29 return FeaturePolicyViolationReportBody_Binding::Wrap(aCx, this, aGivenProto); 30 } 31 32 void FeaturePolicyViolationReportBody::GetFeatureId( 33 nsAString& aFeatureId) const { 34 aFeatureId = mFeatureId; 35 } 36 37 void FeaturePolicyViolationReportBody::GetSourceFile( 38 nsACString& aSourceFile) const { 39 aSourceFile = mSourceFile; 40 } 41 42 Nullable<int32_t> FeaturePolicyViolationReportBody::GetLineNumber() const { 43 return mLineNumber; 44 } 45 46 Nullable<int32_t> FeaturePolicyViolationReportBody::GetColumnNumber() const { 47 return mColumnNumber; 48 } 49 50 void FeaturePolicyViolationReportBody::GetDisposition( 51 nsAString& aDisposition) const { 52 aDisposition = mDisposition; 53 } 54 55 void FeaturePolicyViolationReportBody::ToJSON(JSONWriter& aWriter) const { 56 aWriter.StringProperty("featureId", NS_ConvertUTF16toUTF8(mFeatureId)); 57 58 if (mSourceFile.IsEmpty()) { 59 aWriter.NullProperty("sourceFile"); 60 } else { 61 aWriter.StringProperty("sourceFile", mSourceFile); 62 } 63 64 if (mLineNumber.IsNull()) { 65 aWriter.NullProperty("lineNumber"); 66 } else { 67 aWriter.IntProperty("lineNumber", mLineNumber.Value()); 68 } 69 70 if (mColumnNumber.IsNull()) { 71 aWriter.NullProperty("columnNumber"); 72 } else { 73 aWriter.IntProperty("columnNumber", mColumnNumber.Value()); 74 } 75 76 aWriter.StringProperty("disposition", NS_ConvertUTF16toUTF8(mDisposition)); 77 } 78 79 } // namespace mozilla::dom