-
Notifications
You must be signed in to change notification settings - Fork 2
Browser
Elyas Rahimi edited this page Jan 21, 2026
·
1 revision
The Browser component is the main application entry point for the Grob web browser. It provides the user interface and window management, handling rendering, user interaction, and network requests.
-
Window Management: Uses
winitfor cross-platform window and event handling -
Pixel Rendering: Utilizes the
pixelscrate for efficient 2D rendering - Event Handling: Manages keyboard, mouse, and window events
- Font Rendering: Integrates with the Font Manager for text rendering
- Network Integration: Communicates with the Network Manager for HTTP requests
- DOM Interaction: Supports hyperlink navigation and DOM manipulation
Located in browser/src/main.rs, the browser initializes:
- The Winit event loop for handling OS events
- The pixel buffer for rendering
- The font manager for text rendering
- The layout and rendering pipeline
The browser's event loop handles:
- Window events (resize, focus, close)
- Mouse events (clicks, movement for link detection)
- Keyboard input
- Rendering and layout updates
- Parse HTML and CSS
- Build DOM tree
- Apply styles
- Calculate layout
- Paint to pixel buffer
- Display in window
-
winit: Window and event management -
pixels: Low-level graphics rendering -
rusttype: Font glyph rendering -
engine: Core rendering engine integration
- winit
- pixels
- rusttype
- grob_engine
- Add tab support for multiple pages
- Implement history navigation (back/forward)
- Add developer tools for debugging
- JavaScript engine integration
- Plugin system support