Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f5f9f35

Browse files
biggs0125natebiggs
andauthored
Add dynamic module loader to flutter wasm entrypoint script. (#169313)
Adds support for loading dynamic module files to the Flutter wasm entrypoint script. The Dart SDK already tries to import this function when dynamic modules are enabled. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Co-authored-by: Nate Biggs <[email protected]>
1 parent 1ce59f4 commit f5f9f35

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

engine/src/flutter/lib/web_ui/flutter_js/src/entrypoint_loader.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,17 @@ export class FlutterEntrypointLoader {
174174
importsPromise = Promise.resolve({});
175175
}
176176
const compiledDartApp = await compiledDartAppPromise;
177-
const dartApp = await compiledDartApp.instantiate(await importsPromise);
177+
const dartApp = await compiledDartApp.instantiate(await importsPromise, {
178+
loadDynamicModule: async (wasmUri, mjsUri) => {
179+
const wasmBytes = fetch(resolveUrlWithSegments(entrypointBaseUrl, wasmUri));
180+
let mjsRuntimeUri = resolveUrlWithSegments(entrypointBaseUrl, mjsUri);
181+
if (this._ttPolicy != null) {
182+
mjsRuntimeUri = this._ttPolicy.createScriptURL(mjsRuntimeUri);
183+
}
184+
const mjsModule = import(mjsRuntimeUri);
185+
return [await wasmBytes, await mjsModule];
186+
}
187+
});
178188
await dartApp.invokeMain();
179189
}
180190
}

0 commit comments

Comments
 (0)