diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /layout/style/nsDOMCSSValueList.cpp | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'layout/style/nsDOMCSSValueList.cpp')
-rw-r--r-- | layout/style/nsDOMCSSValueList.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/layout/style/nsDOMCSSValueList.cpp b/layout/style/nsDOMCSSValueList.cpp new file mode 100644 index 0000000000..6cee83e509 --- /dev/null +++ b/layout/style/nsDOMCSSValueList.cpp @@ -0,0 +1,62 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* DOM object representing lists of values in DOM computed style */ + +#include "nsDOMCSSValueList.h" + +#include <utility> + +#include "mozilla/ErrorResult.h" +#include "nsString.h" + +using namespace mozilla; +using namespace mozilla::dom; + +nsDOMCSSValueList::nsDOMCSSValueList(bool aCommaDelimited) + : CSSValue(), mCommaDelimited(aCommaDelimited) {} + +nsDOMCSSValueList::~nsDOMCSSValueList() = default; + +void nsDOMCSSValueList::AppendCSSValue(already_AddRefed<CSSValue> aValue) { + RefPtr<CSSValue> val = aValue; + mCSSValues.AppendElement(std::move(val)); +} + +void nsDOMCSSValueList::GetCssText(nsAString& aCssText) { + aCssText.Truncate(); + + uint32_t count = mCSSValues.Length(); + + nsAutoString separator; + if (mCommaDelimited) { + separator.AssignLiteral(", "); + } else { + separator.Assign(char16_t(' ')); + } + + nsAutoString tmpStr; + for (uint32_t i = 0; i < count; ++i) { + CSSValue* cssValue = mCSSValues[i]; + NS_ASSERTION(cssValue, + "Eek! Someone filled the value list with null CSSValues!"); + if (cssValue) { + cssValue->GetCssText(tmpStr); + if (tmpStr.IsEmpty()) { +#ifdef DEBUG_caillon + NS_ERROR("Eek! An empty CSSValue! Bad!"); +#endif + continue; + } + // If this isn't the first item in the list, then + // it's ok to append a separator. + if (!aCssText.IsEmpty()) { + aCssText.Append(separator); + } + aCssText.Append(tmpStr); + } + } +} |