| Index: tools/telemetry/telemetry/core/temporary_http_server.py
|
| diff --git a/tools/telemetry/telemetry/core/temporary_http_server.py b/tools/telemetry/telemetry/core/temporary_http_server.py
|
| index e6dd42cf12574d3fba4f1808acfe7e7a23d7089b..c36ae8ca4246707efda3fa400f0adeace5ab419a 100644
|
| --- a/tools/telemetry/telemetry/core/temporary_http_server.py
|
| +++ b/tools/telemetry/telemetry/core/temporary_http_server.py
|
| @@ -13,12 +13,18 @@ class TemporaryHTTPServer(object):
|
| def __init__(self, browser_backend, paths):
|
| self._server = None
|
| self._devnull = None
|
| - self._paths = paths
|
| self._forwarder = None
|
| self._host_port = util.GetAvailableLocalPort()
|
|
|
| - for path in self._paths:
|
| - assert os.path.exists(path), path
|
| + for path in paths:
|
| + assert os.path.exists(path), '%s does not exist.' % path
|
| + self._paths = set(map(os.path.realpath, paths))
|
| +
|
| + common_prefix = os.path.commonprefix(self._paths)
|
| + if os.path.isdir(common_prefix):
|
| + self._base_dir = common_prefix
|
| + else:
|
| + self._base_dir = os.path.dirname(common_prefix)
|
|
|
| self._devnull = open(os.devnull, 'w')
|
| cmd = [sys.executable, '-m', 'memory_cache_http_server',
|
| @@ -26,7 +32,7 @@ class TemporaryHTTPServer(object):
|
| cmd.extend(self._paths)
|
| env = os.environ.copy()
|
| env['PYTHONPATH'] = os.path.abspath(os.path.dirname(__file__))
|
| - self._server = subprocess.Popen(cmd, cwd=os.path.commonprefix(self._paths),
|
| + self._server = subprocess.Popen(cmd, cwd=self._base_dir,
|
| env=env, stdout=self._devnull, stderr=self._devnull)
|
|
|
| self._forwarder = browser_backend.CreateForwarder(
|
| @@ -66,4 +72,5 @@ class TemporaryHTTPServer(object):
|
| return self._forwarder.url
|
|
|
| def UrlOf(self, path):
|
| - return urlparse.urljoin(self.url, path)
|
| + relative_path = os.path.relpath(path, self._base_dir)
|
| + return urlparse.urljoin(self.url, relative_path.replace('\\', '/'))
|
|
|