Skip to content

ie-shell: cache parsed page — don't re-parse HTML/CSS/layout on every redraw #87

@thomasnemer

Description

@thomasnemer

Goal

Currently render_page() runs the full pipeline (parse → style → layout → display list) on every RedrawRequested. This is extremely wasteful.

Current state

  • Every frame: re-tokenizes HTML, re-builds DOM, re-resolves styles, re-layouts, re-builds display list
  • On a complex page this takes 10-100ms per frame
  • Window resize, overlay toggle, any redraw triggers full re-parse

Implementation needed

  • Cache ParseResult + styles + layout tree on the active Tab
  • Only re-parse when page source changes (navigation)
  • Only re-layout on resize (viewport changed)
  • Only re-build display list on layout change
  • Overlay rendering doesn't need page re-parse

Impact

Major performance improvement. Currently browsing feels sluggish.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions