@@ -30,7 +30,7 @@ Handler Function(Handler) createInjectedHandler(
3030 int extensionPort}) =>
3131 (innerHandler) {
3232 return (Request request) async {
33- if (request.url.path == '$_clientScript .js' ) {
33+ if (request.url.path. endsWith ( '$_clientScript .js' ) ) {
3434 var uri = await Isolate .resolvePackageUri (
3535 Uri .parse ('package:$_clientScript .js' ));
3636 var result = await File (uri.toFilePath ()).readAsString ();
@@ -67,9 +67,16 @@ Handler Function(Handler) createInjectedHandler(
6767 var mainFunction = bodyLines[extensionIndex + 1 ]
6868 .replaceAll ('main()' , 'main' )
6969 .trim ();
70- body += _injectedClientJs (configuration, appId, mainFunction,
71- extensionHostname: extensionHostname,
72- extensionPort: extensionPort);
70+ var requestedUriBase = '${request .requestedUri .scheme }'
71+ '://${request .requestedUri .authority }' ;
72+ body += _injectedClientJs (
73+ configuration,
74+ appId,
75+ mainFunction,
76+ requestedUriBase,
77+ extensionHostname: extensionHostname,
78+ extensionPort: extensionPort,
79+ );
7380 body += bodyLines.sublist (extensionIndex + 2 ).join ('\n ' );
7481 // Change the hot restart handler to re-assign
7582 // `window.$dartRunMain` to the new main, instead of invoking it.
@@ -89,14 +96,20 @@ Handler Function(Handler) createInjectedHandler(
8996 };
9097
9198String _injectedClientJs (
92- ReloadConfiguration configuration, String appId, String mainFunction,
93- {String extensionHostname, int extensionPort}) {
99+ ReloadConfiguration configuration,
100+ String appId,
101+ String mainFunction,
102+ String requestedUriBase, {
103+ String extensionHostname,
104+ int extensionPort,
105+ }) {
94106 var injectedBody = '// Injected by webdev for build results support.\n '
95107 'window.\$ dartAppId = "$appId ";\n '
96108 'window.\$ dartRunMain = $mainFunction ;\n '
97109 'window.\$ dartReloadConfiguration = "$configuration ";\n '
98110 'window.\$ dartLoader.forceLoadModule("$_clientScript ");\n '
99111 'window.\$ dartModuleStrategy = "$loadModule ";\n '
112+ 'window.\$ dartUriBase = "$requestedUriBase ";\n '
100113 'window.\$ loadModuleConfig = $loadModule ;\n ' ;
101114 if (extensionPort != null && extensionHostname != null ) {
102115 injectedBody += 'window.\$ extensionHostname = "$extensionHostname ";\n '
0 commit comments