#include "third_party/blink/renderer/core/paint/theme_painter.h"
#include "build/build_config.h"
#include "third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom-shared.h"
#include "third_party/blink/public/platform/platform.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/frame/local_frame_view.h"
#include "third_party/blink/renderer/core/html/forms/html_button_element.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_element.h"
#include "third_party/blink/renderer/core/html/forms/html_data_list_options_collection.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/forms/html_option_element.h"
#include "third_party/blink/renderer/core/html/forms/html_select_element.h"
#include "third_party/blink/renderer/core/html/parser/html_parser_idioms.h"
#include "third_party/blink/renderer/core/html/shadow/shadow_element_names.h"
#include "third_party/blink/renderer/core/input_type_names.h"
#include "third_party/blink/renderer/core/layout/layout_theme.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/paint/paint_auto_dark_mode.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_canvas.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/text/writing_mode.h"
#include "ui/base/ui_base_features.h"
#include "ui/native_theme/native_theme.h"
namespace blink {
FormControlType;
namespace {
bool IsMultipleFieldsTemporalInput(FormControlType type) { … }
}
ThemePainter::ThemePainter() = default;
#define COUNT_APPEARANCE …
void CountAppearanceTextFieldPart(const Element& element) { … }
bool ThemePainter::Paint(const LayoutObject& o,
const PaintInfo& paint_info,
const gfx::Rect& r) { … }
bool ThemePainter::PaintBorderOnly(const Node* node,
const ComputedStyle& style,
const PaintInfo& paint_info,
const gfx::Rect& r) { … }
bool ThemePainter::PaintDecorations(const Node* node,
const Document& document,
const ComputedStyle& style,
const PaintInfo& paint_info,
const gfx::Rect& r) { … }
#undef COUNT_APPEARANCE
void ThemePainter::PaintSliderTicks(const LayoutObject& o,
const PaintInfo& paint_info,
const gfx::Rect& rect) { … }
}