tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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