Implement overflow scrolling with scroll bars master
Add scrollable overflow regions for overflow:scroll and overflow:auto boxes, with rendered scroll bars and mouse wheel event support. Layout crate: - Add content_height field to LayoutBox tracking natural content height before CSS height override (used for overflow detection) - Reserve SCROLLBAR_WIDTH (15px) from content area for overflow:scroll - Export SCROLLBAR_WIDTH constant Render crate: - Add ScrollState type (HashMap<NodeId, (f32, f32)>) for scroll offsets - Modify display list builder to accept scroll state and translate offset - Apply scroll offset to child coordinates in scrollable containers - Render vertical scroll bars (track + proportional thumb) for overflow:scroll (always) and overflow:auto (when content overflows) - Add page-level scroll support via paint_with_scroll() - Add build_display_list_with_page_scroll() for viewport scrolling - 6 new tests: scrollbar rendering, scroll offset, thumb proportionality, overflow:auto conditional scrollbar, page scroll Platform crate: - Add scrollWheel: event handler to WeView class - Add set_scroll_handler() for registering scroll callbacks - Forward scroll delta (dx, dy) and mouse position to handler Browser crate: - Add page_scroll_y, content_height, scroll_offsets to BrowserState - Handle scroll wheel events: update page scroll, clamp to bounds, re-render - Pass scroll state through rendering pipeline Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>