int ScrollbarThemeOverlay::thumbPosition(const ScrollbarThemeClient& scrollbar)
{
    if (!scrollbar.totalSize())
        return 0;

    int trackLen = trackLength(scrollbar);
    float proportion = static_cast<float>(scrollbar.currentPos()) / scrollbar.totalSize();
    return round(proportion * trackLen);
}
void ScrollbarThemeAura::paintButton(GraphicsContext& gc, const ScrollbarThemeClient& scrollbar, const IntRect& rect, ScrollbarPart part)
{
    DisplayItem::Type displayItemType = buttonPartToDisplayItemType(part);
    if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemType))
        return;
    PartPaintingParams params = buttonPartPaintingParams(scrollbar, scrollbar.currentPos(), part);
    if (!params.shouldPaint)
        return;
    DrawingRecorder recorder(gc, scrollbar, displayItemType, rect);
    Platform::current()->themeEngine()->paint(gc.canvas(), params.part, params.state, WebRect(rect), 0);
}