Skip to content

[wimp] Support non-chrome browsers with wimp #187212

Open

Description

@eyebrowsoffire

In order to work on non-chrome browsers, we need to create a wimp_heavy variant of wimp, similar to the skwasm_heavy variant. The heavy variant has two main differences:

  • Has ICU data built into the binary, and doesn't rely on Chrome's v8BreakIterator
  • Includes image decoding for some image types when we don't have access to web codecs.

We may want to take a look at the second one of those and see if that's necessary anymore. I think at least Firefox has added support for webcodecs, and Safari may have too. Hence, we might be able to leave out codec support in the binary and always assume that webcodecs are available.

Activity

  1. added
    e: impellerImpeller rendering backend issues and features requests
    e: wasmIssues related to the wasm build of Flutter Web.
    on May 27, 2026
  2. bivens-dev commented on May 28, 2026

    @bivens-dev
  3. added
    team-webOwned by Web platform team
    and removed on Jun 1, 2026
  4. added
    P2Important issues not at the top of the work list
    triaged-webTriaged by Web platform team
    on Jun 3, 2026
  5. yjbanov commented on Jun 3, 2026

    @yjbanov
    Contributor

    The WebCodecs part we're interested in is https://caniuse.com/?search=ImageDecoder. It looks like Firefox now supports image codecs. We should test it and add it to the allow list.

  6. yjbanov commented on Jun 3, 2026

    @yjbanov
    Contributor

    Issue for image decoding: #122761

  7. gaaclarke commented on Jul 23, 2026

    @gaaclarke
    Member
    • Has ICU data built into the binary, and doesn't rely on Chrome's v8BreakIterator

    fyi chrome 151.0.7922.48 complains Intl.v8BreakIterator is deprecated. Please use Intl.Segmenter instead.

    edit: filed issue -- #189938

  8. gaaclarke commented on Jul 23, 2026

    @gaaclarke
    Member

    From poking around, Intl.v8BreakIterator is deprecated for Intl.Segmenter which is supported on all major browsers. So once we migrate away from v8BreakIterator, we should be good there. Firefox supports ImageDecoder since 133 too. The only browser that doesn't support ImageDecoder is Safari. I think we can get a lot of support without relying on heavy.

  9. self-assigned this
    on Jul 23, 2026
  10. eyebrowsoffire commented on Jul 23, 2026

    @eyebrowsoffire
    ContributorAuthor

    From poking around, Intl.v8BreakIterator is deprecated for Intl.Segmenter which is supported on all major browsers. So once we migrate away from v8BreakIterator, we should be good there. Firefox supports ImageDecoder since 133 too. The only browser that doesn't support ImageDecoder is Safari. I think we can get a lot of support without relying on heavy.

    There's a lot of context here, but essentially our line-breaking strategy revolves around v8BreakIterator specifically and Intl.Segmenter does not actually support line breaking. So there are no current plans for the web team to move off of v8BreakIterator, even though it is deprecated.

  11. gaaclarke commented on Jul 23, 2026

    @gaaclarke
  12. gaaclarke commented on Jul 24, 2026

    @gaaclarke
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work liste: impellerImpeller rendering backend issues and features requestse: wasmIssues related to the wasm build of Flutter Web.team-webOwned by Web platform teamtriaged-webTriaged by Web platform team

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions