we (web engine): Experimental web browser project to understand the limits of Claude

End-to-end page loading: navigate URL to rendered page #78

open opened by pierrelf.com

Phase 8 — Resource Loading + Character Encoding + Real Page Loading#

Implement the full end-to-end pipeline from URL navigation to rendered page.

Requirements#

Wire together all Phase 8 components into the browser crate's navigation flow:

  1. URL input → parse URL (url crate)
  2. Fetch → ResourceLoader fetches HTML (net + encoding crates)
  3. Parse HTML → tokenize and build DOM (html crate)
  4. Load subresources → fetch <link> stylesheets and <img> images in parallel where possible
  5. Style → parse CSS, match selectors, compute styles (css + style crates)
  6. Layout → generate layout tree (layout crate)
  7. Render → paint to display list, rasterize to bitmap (render + text + image crates)
  8. Display → present bitmap in window (platform crate)

Specific Integration Work#

  • Modify browser main loop to accept a URL argument: cargo run -p we-browser -- https://example.com
  • Connect ResourceLoader to the HTML/CSS/image loading pipeline
  • Ensure encoding detection flows through the pipeline (HTTP charset → BOM → meta prescan)
  • Handle the case where subresources fail to load (graceful degradation)
  • Basic error page for network failures

Acceptance Criteria#

  • cargo run -p we-browser -- https://example.com loads and renders the page
  • External CSS stylesheets are applied
  • Images are displayed
  • Text is rendered with correct fonts and styles
  • Encoding is detected and text is decoded correctly
  • cargo run -p we-browser (no URL) opens about:blank
  • Failed loads show appropriate error messages
  • No external dependencies, no unsafe (except in allowed crates)

Dependencies#

Depends on: All other Phase 8 issues (this is the integration issue)

sign up or login to add to the discussion
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:meotu43t6usg4qdwzenk4s2t/sh.tangled.repo.issue/3mhktaciaf42q