Chromium Code Reviews| Index: chrome/common/extensions/docs/server2/render_servlet.py |
| diff --git a/chrome/common/extensions/docs/server2/render_servlet.py b/chrome/common/extensions/docs/server2/render_servlet.py |
| index eee9f7e0f6d2843b230924c9feba792ca03d4fbd..136f8aa727a21163a267c92708c621eb5740e8d1 100644 |
| --- a/chrome/common/extensions/docs/server2/render_servlet.py |
| +++ b/chrome/common/extensions/docs/server2/render_servlet.py |
| @@ -9,7 +9,6 @@ import os |
| import traceback |
| from appengine_wrappers import IsDevServer |
| -from branch_utility import BranchUtility |
| from file_system import FileNotFoundError |
| from server_instance import ServerInstance |
| from servlet import Servlet, Response |
| @@ -23,40 +22,25 @@ class RenderServlet(Servlet): |
| '''Servlet which renders templates. |
| ''' |
| class Delegate(object): |
| - def CreateServerInstanceForChannel(self, channel): |
| - raise NotImplementedError() |
| + def CreateServerInstance(self): |
| + raise NotImplementedError(self.__class__) |
| - def __init__(self, request, delegate, default_channel='stable'): |
| + def __init__(self, request, delegate): |
| Servlet.__init__(self, request) |
| self._delegate = delegate |
| - self._default_channel = default_channel |
| def Get(self): |
| - path_with_channel, headers = (self._request.path, self._request.headers) |
| - |
| - # Redirect "extensions" and "extensions/" to "extensions/index.html", etc. |
| - if (os.path.splitext(path_with_channel)[1] == '' and |
| - path_with_channel.find('/') == -1): |
| - path_with_channel += '/' |
| - if path_with_channel.endswith('/'): |
| - return Response.Redirect('/%sindex.html' % path_with_channel) |
| - |
| - channel, path = BranchUtility.SplitChannelNameFromPath(path_with_channel) |
| - |
| - if channel == self._default_channel: |
| - return Response.Redirect('/%s' % path) |
| - |
| - if channel is None: |
| - channel = self._default_channel |
| - |
| - server_instance = self._delegate.CreateServerInstanceForChannel(channel) |
| - |
| - canonical_path = ( |
| - server_instance.path_canonicalizer.Canonicalize(path).lstrip('/')) |
| + server_instance = self._delegate.CreateServerInstance() |
| + |
| + path = self._request.path |
| + canonical_result = server_instance.path_canonicalizer.Canonicalize(path) |
|
cduvall
2013/05/15 00:50:50
does the path passed in here have a leading '/'? I
not at google - send to devlin
2013/05/15 01:26:50
yeah, the servlet strips off the leading '/' for t
|
| + canonical_path = canonical_result.path.lstrip('/') |
| + # TODO(kalman): do this generically by detecting index.html. |
| + if canonical_path in ('apps/', 'extensions/'): |
| + canonical_path += 'index.html' |
| if path != canonical_path: |
| - redirect_path = (canonical_path if channel is None else |
| - '%s/%s' % (channel, canonical_path)) |
| - return Response.Redirect('/%s' % redirect_path) |
| + return Response.Redirect('/%s' % canonical_path, |
| + permanent=canonical_result.permanent) |
| templates = server_instance.template_data_source_factory.Create( |
| self._request, path) |