#include "third_party/blink/renderer/core/layout/layout_counter.h"
#include <memory>
#include "base/memory/ptr_util.h"
#include "base/numerics/clamped_math.h"
#include "third_party/blink/renderer/core/css/counter_style.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/html/html_directory_element.h"
#include "third_party/blink/renderer/core/html/html_menu_element.h"
#include "third_party/blink/renderer/core/html/html_olist_element.h"
#include "third_party/blink/renderer/core/html/html_ulist_element.h"
#include "third_party/blink/renderer/core/html/list_item_ordinal.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/platform/wtf/std_lib_extras.h"
#if DCHECK_IS_ON()
#include <stdio.h>
#endif
namespace blink {
namespace {
String GenerateCounterText(const CounterStyle* counter_style, int value) { … }
}
LayoutCounter::LayoutCounter(Document& document,
const CounterContentData& counter)
: … { … }
LayoutCounter::~LayoutCounter() = default;
void LayoutCounter::Trace(Visitor* visitor) const { … }
void LayoutCounter::WillBeDestroyed() { … }
void LayoutCounter::UpdateCounter(Vector<int> counter_values) { … }
const CounterStyle* LayoutCounter::NullableCounterStyle() const { … }
bool LayoutCounter::IsDirectionalSymbolMarker() const { … }
const AtomicString& LayoutCounter::Separator() const { … }
const AtomicString& LayoutCounter::ListStyle(const LayoutObject* object,
const ComputedStyle& style) { … }
}