#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_CONTENT_DATA_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_STYLE_CONTENT_DATA_H_
#include "third_party/blink/renderer/core/css/css_value.h"
#include "third_party/blink/renderer/core/style/computed_style_constants.h"
#include "third_party/blink/renderer/core/style/style_image.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/heap/member.h"
#include "third_party/blink/renderer/platform/wtf/casting.h"
#include "third_party/blink/renderer/platform/wtf/text/atomic_string.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
#include <iosfwd>
namespace blink {
class LayoutObject;
class TreeScope;
class ContentData : public GarbageCollected<ContentData> { … };
inline std::ostream& operator<<(std::ostream& stream,
const ContentData& content_data) { … }
class ImageContentData final : public ContentData { … };
template <>
struct DowncastTraits<ImageContentData> { … };
class TextContentData final : public ContentData { … };
template <>
struct DowncastTraits<TextContentData> { … };
class AltTextContentData final : public ContentData { … };
template <>
struct DowncastTraits<AltTextContentData> { … };
class CounterContentData final : public ContentData { … };
template <>
struct DowncastTraits<CounterContentData> { … };
class QuoteContentData final : public ContentData { … };
template <>
struct DowncastTraits<QuoteContentData> { … };
class NoneContentData final : public ContentData { … };
template <>
struct DowncastTraits<NoneContentData> { … };
inline bool operator==(const ContentData& a, const ContentData& b) { … }
inline bool ShouldUseContentDataForElement(const ContentData* content_data) { … }
}
#endif