Chromium Code Reviews| Index: net/tools/testserver/testserver.py |
| =================================================================== |
| --- net/tools/testserver/testserver.py (revision 66086) |
| +++ net/tools/testserver/testserver.py (working copy) |
| @@ -221,7 +221,8 @@ |
| 'gif': 'image/gif', |
| 'jpeg' : 'image/jpeg', |
| 'jpg' : 'image/jpeg', |
| - 'xml' : 'text/xml' |
| + 'xml' : 'text/xml', |
| + 'pdf' : 'application/pdf' |
| } |
| self._default_mime_type = 'text/html' |
| @@ -698,9 +699,25 @@ |
| else: |
| # Could be more generic once we support mime-type sniffing, but for |
| # now we need to set it explicitly. |
| - self.send_response(200) |
| + |
| + range = self.headers.get('Range') |
| + if range and range.startswith('bytes='): |
|
cbentzel
2010/11/17 03:02:01
Maybe a quick comment that this doesn't handle all
jam
2010/11/17 04:10:10
Done.
|
| + range = range[6:].split('-') |
| + start = int(range[0]) |
| + end = int(range[1]) |
| + |
| + self.send_response(206) |
| + content_range = 'bytes ' + str(start) + '-' + str(end) + '/' + \ |
| + str(len(data)) |
| + self.send_header('Content-Range', content_range) |
| + data = data[start: end + 1] |
| + else: |
| + self.send_response(200) |
| + |
| self.send_header('Content-type', self.GetMIMETypeFromName(file_path)) |
| + self.send_header('Accept-Ranges', 'bytes') |
| self.send_header('Content-Length', len(data)) |
| + self.send_header('ETag', '\'' + file_path + '\'') |
|
cbentzel
2010/11/17 03:02:01
Why did etag need to be added?
jam
2010/11/17 04:10:10
the cache code needs it
|
| self.end_headers() |
| self.wfile.write(data) |