Skip to content

[web] Custom Flutter initialization should survive hot restart #108403

Closed

Description

@ditman

The current flutter.js initialization flow does not support hot restart with custom initialization, because after the original promise is resolved, it cannot be resolved anymore.

The current workaround is to remove the didCreateEngineInitializer method once it's been used, but that reverts the initialization of flutter to "Auto" (and defaults). This won't play well with the next steps of embedding flutter in a custom element, or any other data that we might want to pass from JS to a flutter app.

// Remove the public method after it's done, so Flutter Web can hot restart.
delete this.didCreateEngineInitializer;

flutter.js should support multiple hot restarts, keeping the custom initialization. To do so, a new onEngineInitialized API might need to be added to the flutter loader, so programmers can subscribe to Hot Restart events, rather than waiting for the resolution of a promise (that only happens the first time)

Activity

  1. added
    platform-webWeb applications specifically
    P1High-priority issues at the top of the work list
    e: flutter.jsIssues with Flutter web custom initialization through JS APIs
    on Jul 27, 2022
  2. self-assigned this
    on Jul 27, 2022
  3. github-actions commented on Aug 17, 2022

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  4. locked as resolved and limited conversation to collaborators on Aug 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work liste: flutter.jsIssues with Flutter web custom initialization through JS APIsplatform-webWeb applications specifically

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions