| Index: tools/testing/dart/test_suite.dart
 | 
| diff --git a/tools/testing/dart/test_suite.dart b/tools/testing/dart/test_suite.dart
 | 
| index 000a864309d8c7f8b316f9ce7c2ff3f2be361e75..475a3589c8ae153ad655ae5dd3c4736910b01315 100644
 | 
| --- a/tools/testing/dart/test_suite.dart
 | 
| +++ b/tools/testing/dart/test_suite.dart
 | 
| @@ -21,7 +21,6 @@ import "test_runner.dart";
 | 
|  import "multitest.dart";
 | 
|  import "drt_updater.dart";
 | 
|  import "dart:uri";
 | 
| -import '../../../pkg/path/lib/path.dart' as pathLib;
 | 
|  
 | 
|  part "browser_test.dart";
 | 
|  
 | 
| @@ -402,17 +401,11 @@ class StandardTestSuite extends TestSuite {
 | 
|    final Path dartDir;
 | 
|    Predicate<String> isTestFilePredicate;
 | 
|    final bool listRecursively;
 | 
| -  /**
 | 
| -   * The set of servers that have been started to run these tests (Could be
 | 
| -   * none).
 | 
| -   */
 | 
| -  List serverList;
 | 
|  
 | 
|    StandardTestSuite(Map configuration,
 | 
|                      String suiteName,
 | 
|                      Path suiteDirectory,
 | 
|                      this.statusFilePaths,
 | 
| -                    this.serverList,
 | 
|                      {this.isTestFilePredicate,
 | 
|                      bool recursive: false})
 | 
|    : super(configuration, suiteName),
 | 
| @@ -446,18 +439,14 @@ class StandardTestSuite extends TestSuite {
 | 
|     * instead of having to create a custom [StandardTestSuite] subclass. In
 | 
|     * particular, if you add 'path/to/mytestsuite' to [TEST_SUITE_DIRECTORIES]
 | 
|     * in test.dart, this will all be set up for you.
 | 
| -   *
 | 
| -   * The [StandardTestSuite] also optionally takes a list of servers that have
 | 
| -   * been started up by the test harness, to be used by browser tests.
 | 
|     */
 | 
|    factory StandardTestSuite.forDirectory(
 | 
| -      Map configuration, Path directory, [List serverList = const []]) {
 | 
| +      Map configuration, Path directory) {
 | 
|      final name = directory.filename;
 | 
|  
 | 
|      return new StandardTestSuite(configuration,
 | 
|          name, directory,
 | 
|          ['$directory/$name.status', '$directory/${name}_dart2js.status'],
 | 
| -        serverList,
 | 
|          isTestFilePredicate: (filename) => filename.endsWith('_test.dart'),
 | 
|          recursive: true);
 | 
|    }
 | 
| @@ -864,7 +853,7 @@ class StandardTestSuite extends TestSuite {
 | 
|          File file = new File(dartWrapperFilename);
 | 
|          RandomAccessFile dartWrapper = file.openSync(FileMode.WRITE);
 | 
|          dartWrapper.writeStringSync(
 | 
| -            dartTestWrapper(dartDir, file.name, dartLibraryFilename));
 | 
| +            dartTestWrapper(dartDir, dartLibraryFilename));
 | 
|          dartWrapper.closeSync();
 | 
|        } else {
 | 
|          dartWrapperFilename = filename;
 | 
| @@ -886,6 +875,12 @@ class StandardTestSuite extends TestSuite {
 | 
|            dartWrapperFilename : compiledDartWrapperFilename;
 | 
|        // Create the HTML file for the test.
 | 
|        RandomAccessFile htmlTest = new File(htmlPath).openSync(FileMode.WRITE);
 | 
| +      String filePrefix = '';
 | 
| +      if (Platform.operatingSystem == 'windows') {
 | 
| +        // Firefox on Windows does not like absolute file path names that start
 | 
| +        // with 'C:' adding 'file:///' solves the problem.
 | 
| +        filePrefix = 'file:///';
 | 
| +      }
 | 
|        String content = null;
 | 
|        Path dir = filePath.directoryPath;
 | 
|        String nameNoExt = filePath.filenameWithoutExtension;
 | 
| @@ -894,12 +889,10 @@ class StandardTestSuite extends TestSuite {
 | 
|        Path expectedOutput = null;
 | 
|        if (new File.fromPath(pngPath).existsSync()) {
 | 
|          expectedOutput = pngPath;
 | 
| -        content = getHtmlLayoutContents(scriptType, pathLib.relative(scriptPath,
 | 
| -            from: pathLib.dirname(htmlPath)));
 | 
| +        content = getHtmlLayoutContents(scriptType, '$filePrefix$scriptPath');
 | 
|        } else if (new File.fromPath(txtPath).existsSync()) {
 | 
|          expectedOutput = txtPath;
 | 
| -        content = getHtmlLayoutContents(scriptType, pathLib.relative(scriptPath,
 | 
| -            from: pathLib.dirname(htmlPath)));
 | 
| +        content = getHtmlLayoutContents(scriptType, '$filePrefix$scriptPath');
 | 
|        } else {
 | 
|          final htmlLocation = new Path.fromNative(htmlPath);
 | 
|          content = getHtmlContents(
 | 
| @@ -949,15 +942,10 @@ class StandardTestSuite extends TestSuite {
 | 
|          }
 | 
|  
 | 
|          List<String> args = <String>[];
 | 
| -        var basePath = TestUtils.dartDir().toString();
 | 
| -        htmlPath = htmlPath.startsWith(basePath) ?
 | 
| -            htmlPath.substring(basePath.length) : htmlPath;
 | 
| -        String fullHtmlPath = htmlPath;
 | 
| -        if (!htmlPath.startsWith('http')) {
 | 
| -          if (!htmlPath.startsWith('/')) htmlPath = '/$htmlPath';
 | 
| -          fullHtmlPath = 'http://127.0.0.1:${serverList[0].port}$htmlPath?'
 | 
| -              'crossOriginPort=${serverList[1].port}';
 | 
| -        }
 | 
| +        String fullHtmlPath = htmlPath.startsWith('http:') ? htmlPath :
 | 
| +            (htmlPath.startsWith('/') ?
 | 
| +             'file://$htmlPath' :
 | 
| +             'file:///$htmlPath');
 | 
|          if (info.optionsFromFile['isMultiHtmlTest']
 | 
|              && subtestNames.length > 0) {
 | 
|            fullHtmlPath = '${fullHtmlPath}#${subtestNames[subtestIndex]}';
 | 
| @@ -999,10 +987,8 @@ class StandardTestSuite extends TestSuite {
 | 
|                var absolutePath =
 | 
|                    TestUtils.absolutePath(new Path(packageRootPath));
 | 
|                packageRootUri = new Uri.fromComponents(
 | 
| -                  scheme: 'http',
 | 
| -                  path: '127.0.0.1:${serverList[0].port}/'
 | 
| -                      '${pathLib.relative(absolutePath.toString(), from:
 | 
| -                      TestUtils.dartDir().toString())}');
 | 
| +                  scheme: 'file',
 | 
| +                  path: absolutePath.toString());
 | 
|              }
 | 
|            }
 | 
|  
 | 
| @@ -1111,8 +1097,7 @@ class StandardTestSuite extends TestSuite {
 | 
|      var minified = configuration['minified'] ? '-minified' : '';
 | 
|      var dirName = "${configuration['compiler']}-${configuration['runtime']}"
 | 
|                    "$checked$minified";
 | 
| -    Path generatedTestPath = new Path.fromNative(dartDir.toString())
 | 
| -        .append(buildDir.toString())
 | 
| +    Path generatedTestPath = new Path.fromNative(buildDir)
 | 
|          .append('generated_tests')
 | 
|          .append(dirName)
 | 
|          .append(testUniqueName);
 | 
| @@ -1453,8 +1438,7 @@ class DartcCompilationTestSuite extends StandardTestSuite {
 | 
|        : super(configuration,
 | 
|                suiteName,
 | 
|                new Path.fromNative(directoryPath),
 | 
| -              expectations,
 | 
| -              []);
 | 
| +              expectations);
 | 
|  
 | 
|    List<String> additionalOptions(Path filePath) {
 | 
|      return ['--fatal-warnings', '--fatal-type-errors'];
 | 
| 
 |