Todo
ZepraBrowser Global Checklists
ZepraBrowser Development TODO
Priority 1: Core Web Engine
Networking Layer
- HTTP/1.1 client with curl integration
- HTTPS/TLS support with OpenSSL
- HTTP/2 support
- DNS resolution and caching
- Cookie management (storage, expiry, secure flags)
- CORS implementation
- Redirect handling (301, 302, 307, 308)
- Request/response streaming
- WebSocket client
HTML Parser
- Tokenizer (HTML5 spec compliant)
- Tree builder (DOM construction)
- Error recovery and quirks mode
- Entity decoding
- Script/style element handling
- Template element support
- Custom elements
CSS Engine
- CSS tokenizer and parser
- Selector matching (specificity)
- Cascade and inheritance
- Box model calculation
- Flexbox layout
- Grid layout
- Positioned elements (absolute, relative, fixed, sticky)
- Float and clear
- Media queries
- CSS variables (custom properties)
- Animations and transitions
DOM Implementation
- Node, Element, Document interfaces
- Event system (capture, bubble, prevent)
- MutationObserver
- querySelector/querySelectorAll
- classList, dataset
- innerHTML, textContent
- createElement, appendChild, removeChild
- Attribute manipulation
Priority 2: ZepraScript Integration
JavaScript Engine (ZepraScript)
- ES2024 compliance
- JIT compilation tiers
- Garbage collection
- async/await, Promises
- Modules (import/export)
- Classes and inheritance
- Proxies and Reflect
- WeakMap, WeakSet
- BigInt, Symbol
- RegExp (full spec)
Web APIs (via ZepraScript)
- Console API
- Fetch API
- DOM manipulation APIs
- setTimeout, setInterval, requestAnimationFrame
- LocalStorage, SessionStorage
- IndexedDB
- Web Workers
- Service Workers
- History API
- Geolocation API
- Notifications API
- Clipboard API
- Canvas 2D API
- WebGL API
- WebAudio API
- MediaDevices API
Priority 3: Rendering Engine
NXRENDER Graphics
- Real OpenGL context (not stub)
- Texture atlas for images
- Font rendering (FreeType + HarfBuzz)
- Text layout (line breaking, bidi)
- Image decoding (PNG, JPEG, WebP, GIF, SVG)
- GPU-accelerated compositing
- Damage tracking
- VSync and frame pacing
Layout Engine
- Block formatting context
- Inline formatting context
- Table layout
- Multi-column layout
- Flow layout
- Reflow optimization
- Layer tree
Paint and Composite
- Paint order (z-index, stacking context)
- Opacity and blending
- Filters (blur, drop-shadow)
- Transforms (2D and 3D)
- Clipping and masking
- Border rendering (solid, dashed, radius)
- Box shadows
- Gradients (linear, radial, conic)
Priority 4: Browser Features
Tab Management
- Tab creation/destruction
- Tab switching
- Tab reordering (drag)
- Tab groups
- Tab hibernation (memory)
- Private/incognito tabs
Navigation
- URL parsing (RFC 3986)
- Back/forward history
- Address bar with autocomplete
- Search engine integration
- Bookmarks
- Download manager
DevTools
- Elements panel (DOM inspector)
- Console panel
- Network panel
- Sources panel (debugger)
- Performance panel
- Application panel (storage)
- WebDriver protocol (Selenium)
Settings
- Privacy settings
- Security settings
- Appearance (themes)
- Default search engine
- Language preferences
- Permissions manager
Priority 5: Security
Content Security
- Same-origin policy
- Content Security Policy (CSP)
- X-Frame-Options
- XSS protection
- HTTPS-only mode
- Certificate verification
- Safe browsing
Process Isolation
- Sandbox per tab
- IPC between processes
- Memory protection
- File system sandboxing
Authentication
- Password manager
- Autofill
- WebAuthn / FIDO2
- Two-factor authentication
Priority 6: Platform Integration
System Integration
- Default browser registration
- File associations
- Protocol handlers
- Notifications
- System tray
- Auto-updates
Accessibility
- Screen reader support
- Keyboard navigation
- High contrast mode
- Font scaling
- Reduced motion
Immediate Next Steps
- Week 1: HTTP client with curl, basic HTML tokenizer
- Week 2: DOM tree construction, CSS tokenizer
- Week 3: Box model, block/inline layout
- Week 4: ZepraScript DOM bindings
- Week 5: Text rendering with FreeType
- Week 6: Image loading and rendering
- Week 7: Event system (mouse, keyboard)
- Week 8: Navigation and history