| Index: lib/src/runner/browser/platform.dart
|
| diff --git a/lib/src/runner/browser/platform.dart b/lib/src/runner/browser/platform.dart
|
| index e4302314a996296b77ba6597466df7114799484b..0d84ccca5b9e8d94084d1eeb05cbc7efa5f51f8b 100644
|
| --- a/lib/src/runner/browser/platform.dart
|
| +++ b/lib/src/runner/browser/platform.dart
|
| @@ -8,12 +8,14 @@ import 'dart:io';
|
|
|
| import 'package:async/async.dart';
|
| import 'package:http_multi_server/http_multi_server.dart';
|
| +import 'package:package_resolver/package_resolver.dart';
|
| import 'package:path/path.dart' as p;
|
| import 'package:pool/pool.dart';
|
| import 'package:shelf/shelf.dart' as shelf;
|
| import 'package:shelf/shelf_io.dart' as shelf_io;
|
| import 'package:shelf_static/shelf_static.dart';
|
| import 'package:shelf_web_socket/shelf_web_socket.dart';
|
| +import 'package:shelf_packages_handler/shelf_packages_handler.dart';
|
| import 'package:stream_channel/stream_channel.dart';
|
| import 'package:web_socket_channel/web_socket_channel.dart';
|
|
|
| @@ -120,7 +122,7 @@ class BrowserPlatform extends PlatformPlugin {
|
|
|
| if (_config.pubServeUrl == null) {
|
| cascade = cascade
|
| - .add(_createPackagesHandler())
|
| + .add(packagesDirHandler())
|
| .add(_jsHandler.handler)
|
| .add(createStaticHandler(_root))
|
| .add(_wrapperHandler);
|
| @@ -131,33 +133,12 @@ class BrowserPlatform extends PlatformPlugin {
|
| }
|
|
|
| var pipeline = new shelf.Pipeline()
|
| - .addMiddleware(nestingMiddleware(_secret))
|
| - .addHandler(cascade.handler);
|
| + .addMiddleware(nestingMiddleware(_secret))
|
| + .addHandler(cascade.handler);
|
|
|
| _server.mount(pipeline);
|
| }
|
|
|
| - /// Returns a handler that serves the contents of the "packages/" directory
|
| - /// for any URL that contains "packages/".
|
| - ///
|
| - /// This is a factory so it can wrap a static handler.
|
| - shelf.Handler _createPackagesHandler() {
|
| - var staticHandler =
|
| - createStaticHandler(_config.packageRoot, serveFilesOutsidePath: true);
|
| -
|
| - return (request) {
|
| - var segments = p.url.split(request.url.path);
|
| -
|
| - for (var i = 0; i < segments.length; i++) {
|
| - if (segments[i] != "packages") continue;
|
| - return staticHandler(
|
| - request.change(path: p.url.joinAll(segments.take(i + 1))));
|
| - }
|
| -
|
| - return new shelf.Response.notFound("Not found.");
|
| - };
|
| - }
|
| -
|
| /// A handler that serves wrapper files used to bootstrap tests.
|
| shelf.Response _wrapperHandler(shelf.Request request) {
|
| var path = p.fromUri(request.url);
|
| @@ -317,7 +298,8 @@ class BrowserPlatform extends PlatformPlugin {
|
| _mappers[path] = new StackTraceMapper(
|
| await UTF8.decodeStream(response),
|
| mapUrl: url,
|
| - packageRoot: _config.pubServeUrl.resolve('packages'),
|
| + packageResolver: new SyncPackageResolver.root(
|
| + _config.pubServeUrl.resolve('packages')),
|
| sdkRoot: _config.pubServeUrl.resolve('packages/\$sdk'));
|
| return;
|
| }
|
| @@ -349,8 +331,7 @@ class BrowserPlatform extends PlatformPlugin {
|
| var dir = new Directory(_compiledDir).createTempSync('test_').path;
|
| var jsPath = p.join(dir, p.basename(dartPath) + ".browser_test.dart.js");
|
|
|
| - await _compilers.compile(dartPath, jsPath,
|
| - packageRoot: _config.packageRoot);
|
| + await _compilers.compile(dartPath, jsPath);
|
| if (_closed) return;
|
|
|
| var jsUrl = p.toUri(p.relative(dartPath, from: _root)).path +
|
| @@ -373,7 +354,7 @@ class BrowserPlatform extends PlatformPlugin {
|
| _mappers[dartPath] = new StackTraceMapper(
|
| new File(mapPath).readAsStringSync(),
|
| mapUrl: p.toUri(mapPath),
|
| - packageRoot: p.toUri(_config.packageRoot),
|
| + packageResolver: await PackageResolver.current.asSync,
|
| sdkRoot: p.toUri(sdkDir));
|
| });
|
| }
|
|
|