Index: chrome/common/extensions/docs/server2/server_instance.py |
diff --git a/chrome/common/extensions/docs/server2/server_instance.py b/chrome/common/extensions/docs/server2/server_instance.py |
index 8c5e1b69e180ad2d89212fe562cd5a247cd94777..54550b3c8b7ec3880264dc8d189523bd61824860 100644 |
--- a/chrome/common/extensions/docs/server2/server_instance.py |
+++ b/chrome/common/extensions/docs/server2/server_instance.py |
@@ -3,6 +3,7 @@ |
# found in the LICENSE file. |
from fnmatch import fnmatch |
+import logging |
import mimetypes |
import os |
@@ -184,7 +185,6 @@ class ServerInstance(object): |
svn_constants.PRIVATE_TEMPLATE_PATH) |
self.example_zipper = ExampleZipper( |
- self.svn_file_system, |
self.compiled_fs_factory, |
svn_constants.DOCS_PATH) |
@@ -198,49 +198,40 @@ class ServerInstance(object): |
"""Fetch a resource in the 'static' directory. |
""" |
mimetype = mimetypes.guess_type(path)[0] or 'text/plain' |
- try: |
- result = self.content_cache.GetFromFile( |
- svn_constants.DOCS_PATH + '/' + path, |
- binary=_IsBinaryMimetype(mimetype)) |
- except FileNotFoundError: |
- return None |
+ result = self.content_cache.GetFromFile( |
+ svn_constants.DOCS_PATH + '/' + path, |
+ binary=_IsBinaryMimetype(mimetype)) |
response.headers['content-type'] = mimetype |
return result |
def Get(self, path, request, response): |
templates = self.template_data_source_factory.Create(request, path) |
- if path.rsplit('/', 1)[-1] in ('favicon.ico', 'robots.txt'): |
- response.set_status(404) |
- response.out.write(templates.Render('404')) |
- return |
- |
content = None |
- if fnmatch(path, 'extensions/examples/*.zip'): |
- try: |
+ try: |
+ if fnmatch(path, 'extensions/examples/*.zip'): |
content = self.example_zipper.Create( |
path[len('extensions/'):-len('.zip')]) |
response.headers['content-type'] = 'application/zip' |
- except FileNotFoundError: |
- content = None |
- elif path.startswith('extensions/examples/'): |
- mimetype = mimetypes.guess_type(path)[0] or 'text/plain' |
- try: |
+ elif path.startswith('extensions/examples/'): |
+ mimetype = mimetypes.guess_type(path)[0] or 'text/plain' |
content = self.content_cache.GetFromFile( |
'%s/%s' % (svn_constants.DOCS_PATH, path[len('extensions/'):]), |
binary=_IsBinaryMimetype(mimetype)) |
response.headers['content-type'] = 'text/plain' |
- except FileNotFoundError: |
- content = None |
- elif path.startswith('static/'): |
- content = self._FetchStaticResource(path, response) |
- elif path.endswith('.html'): |
- content = templates.Render(path) |
+ elif path.startswith('static/'): |
+ content = self._FetchStaticResource(path, response) |
+ elif path.endswith('.html'): |
+ content = templates.Render(path) |
+ except FileNotFoundError as e: |
+ logging.warning(e) |
response.headers['x-frame-options'] = 'sameorigin' |
- if content: |
- response.headers['cache-control'] = 'max-age=300' |
- response.out.write(content) |
- else: |
+ if content is None: |
response.set_status(404); |
response.out.write(templates.Render('404')) |
+ else: |
+ if not content: |
+ logging.error('%s had empty content' % path) |
+ response.headers['cache-control'] = 'max-age=300' |
+ response.out.write(content) |