| Index: tools/testing/dart/http_server.dart
|
| diff --git a/tools/testing/dart/http_server.dart b/tools/testing/dart/http_server.dart
|
| index 5213dae2d1e802d70b20c033b49283a458d5931f..378f1593366f3cddb7d10589c4dd3a3da15fe6b2 100644
|
| --- a/tools/testing/dart/http_server.dart
|
| +++ b/tools/testing/dart/http_server.dart
|
| @@ -91,9 +91,8 @@ main(List<String> arguments) {
|
| if (args['help']) {
|
| print(parser.getUsage());
|
| } else {
|
| - var servers = new TestingServers(args['build-directory'],
|
| - args['csp'], args['runtime'], null, args['package-root'],
|
| - args['packages']);
|
| + var servers = new TestingServers(args['build-directory'], args['csp'],
|
| + args['runtime'], null, args['package-root'], args['packages']);
|
| var port = int.parse(args['port']);
|
| var crossOriginPort = int.parse(args['crossOriginPort']);
|
| servers
|
| @@ -143,8 +142,8 @@ class TestingServers {
|
| } else {
|
| _dartDirectory = Uri.base.resolveUri(new Uri.directory(dartDirectory));
|
| }
|
| - if (packageRoot == null ) {
|
| - if (packages == null ) {
|
| + if (packageRoot == null) {
|
| + if (packages == null) {
|
| _packages = _dartDirectory.resolve('.packages');
|
| } else {
|
| _packages = new Uri.file(packages);
|
| @@ -167,27 +166,31 @@ class TestingServers {
|
| * "Access-Control-Allow-Credentials: true"
|
| */
|
| Future startServers(String host,
|
| - {int port: 0,
|
| - int crossOriginPort: 0}) async {
|
| + {int port: 0, int crossOriginPort: 0}) async {
|
| if (_packages != null) {
|
| _resolver = await SyncPackageResolver.loadConfig(_packages);
|
| } else {
|
| _resolver = new SyncPackageResolver.root(_packageRoot);
|
| }
|
| _server = await _startHttpServer(host, port: port);
|
| - await _startHttpServer(host, port: crossOriginPort,
|
| - allowedPort: _serverList[0].port);
|
| + await _startHttpServer(host,
|
| + port: crossOriginPort, allowedPort: _serverList[0].port);
|
| }
|
|
|
| String httpServerCommandline() {
|
| var dart = Platform.resolvedExecutable;
|
| var script = _dartDirectory.resolve('tools/testing/dart/http_server.dart');
|
| var buildDirectory = _buildDirectory.toFilePath();
|
| - var command = [dart, script.toFilePath(),
|
| - '-p', port,
|
| - '-c', crossOriginPort,
|
| + var command = [
|
| + dart,
|
| + script.toFilePath(),
|
| + '-p',
|
| + port,
|
| + '-c',
|
| + crossOriginPort,
|
| '--build-directory=$buildDirectory',
|
| - '--runtime=$runtime'];
|
| + '--runtime=$runtime'
|
| + ];
|
| if (useContentSecurityPolicy) {
|
| command.add('--csp');
|
| }
|
| @@ -217,6 +220,7 @@ class TestingServers {
|
| fileHandler(request) {
|
| _handleFileOrDirectoryRequest(request, allowedPort);
|
| }
|
| +
|
| server.addHandler('/$PREFIX_BUILDDIR', fileHandler);
|
| server.addHandler('/$PREFIX_DARTDIR', fileHandler);
|
| server.addHandler('/packages', fileHandler);
|
| @@ -225,8 +229,7 @@ class TestingServers {
|
| });
|
| }
|
|
|
| - _handleFileOrDirectoryRequest(HttpRequest request,
|
| - int allowedPort) async {
|
| + _handleFileOrDirectoryRequest(HttpRequest request, int allowedPort) async {
|
| // Enable browsers to cache file/directory responses.
|
| var response = request.response;
|
| response.headers
|
| @@ -235,8 +238,8 @@ class TestingServers {
|
| if (path != null) {
|
| var file = new File.fromUri(path);
|
| var directory = new Directory.fromUri(path);
|
| - if (await file.exists()){
|
| - _sendFileContent(request, response, allowedPort, file);
|
| + if (await file.exists()) {
|
| + _sendFileContent(request, response, allowedPort, file);
|
| } else if (await directory.exists()) {
|
| _sendDirectoryListing(
|
| await _listDirectory(directory), request, response);
|
| @@ -294,7 +297,8 @@ class TestingServers {
|
| if (pathSegments.length == 0) return null;
|
| int packagesIndex = pathSegments.indexOf('packages');
|
| if (packagesIndex != -1) {
|
| - var packageUri = new Uri(scheme: 'package',
|
| + var packageUri = new Uri(
|
| + scheme: 'package',
|
| pathSegments: pathSegments.skip(packagesIndex + 1));
|
| return _resolver.resolveUri(packageUri);
|
| }
|
| @@ -348,8 +352,7 @@ class TestingServers {
|
| entries.sort();
|
| response.write(header);
|
| for (var entry in entries) {
|
| - response.write(
|
| - '<li><a href="${request.uri}/${entry.name}">'
|
| + response.write('<li><a href="${request.uri}/${entry.name}">'
|
| '${entry.displayName}</a></li>');
|
| }
|
| response.write(footer);
|
| @@ -360,8 +363,8 @@ class TestingServers {
|
| });
|
| }
|
|
|
| - void _sendFileContent(HttpRequest request, HttpResponse response,
|
| - int allowedPort, File file) {
|
| + void _sendFileContent(
|
| + HttpRequest request, HttpResponse response, int allowedPort, File file) {
|
| if (allowedPort != -1) {
|
| var headerOrigin = request.headers.value('Origin');
|
| var allowedOrigin;
|
| @@ -421,6 +424,7 @@ class TestingServers {
|
| return path.contains(pattern);
|
| });
|
| }
|
| +
|
| if (!isHarmlessPath(request.uri.path)) {
|
| DebugLogger.warning('HttpServer: could not find file for request path: '
|
| '"${request.uri.path}"');
|
|
|