Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Unified Diff: chrome/common/extensions/docs/server2/render_servlet.py

Issue 15087006: Docserver: there is only one. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: epic rebase Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 5b29c3d159d6b627210128c3d5fde29424ca3542..77245d6e3ecec537b7cf80cc56d29683e7037c35 100644
--- a/chrome/common/extensions/docs/server2/render_servlet.py
+++ b/chrome/common/extensions/docs/server2/render_servlet.py
@@ -8,7 +8,6 @@ import mimetypes
import traceback
from urlparse import urlsplit
-from branch_utility import BranchUtility
from file_system import FileNotFoundError
from servlet import Servlet, Response
import svn_constants
@@ -21,43 +20,34 @@ 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):
''' Render the page for a request.
'''
- headers = self._request.headers
- channel, path = BranchUtility.SplitChannelNameFromPath(self._request.path)
+ # TODO(kalman): a consistent path syntax (even a Path class?) so that we
+ # can stop being so conservative with stripping and adding back the '/'s.
+ path = self._request.path.lstrip('/')
if path.split('/')[-1] == 'redirects.json':
return Response.Ok('')
- if channel == self._default_channel:
- return Response.Redirect('/' + path)
- if channel is None:
- channel = self._default_channel
-
- server_instance = self._delegate.CreateServerInstanceForChannel(channel)
+ server_instance = self._delegate.CreateServerInstance()
redirect = server_instance.redirector.Redirect(self._request.host, path)
if redirect is not None:
- if (channel != self._default_channel and
- not urlsplit(redirect).scheme in ('http', 'https')):
- redirect = '/%s%s' % (channel, redirect)
return Response.Redirect(redirect)
- canonical_path = server_instance.path_canonicalizer.Canonicalize(path)
- redirect = canonical_path.lstrip('/')
+ canonical_result = server_instance.path_canonicalizer.Canonicalize(path)
+ redirect = canonical_result.path.lstrip('/')
if path != redirect:
- if channel is not None:
- redirect = '%s/%s' % (channel, canonical_path)
- return Response.Redirect('/' + redirect)
+ return Response.Redirect('/' + redirect,
+ permanent=canonical_result.permanent)
templates = server_instance.template_data_source_factory.Create(
self._request, path)
« no previous file with comments | « chrome/common/extensions/docs/server2/preview.py ('k') | chrome/common/extensions/docs/server2/render_servlet_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698