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

Side by Side Diff: chrome/common/extensions/docs/server2/handler.py

Issue 14125010: Docserver: Add support for viewing docs with a codereview patch applied (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: Created 7 years, 7 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 unified diff | Download patch
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 from appengine_wrappers import webapp 5 from appengine_wrappers import webapp
6 from cron_servlet import CronServlet 6 from cron_servlet import CronServlet
7 from render_servlet import RenderServlet 7 from render_servlet import RenderServlet
8 from patch_servlet import PatchServlet
8 from servlet import Request 9 from servlet import Request
9 10
10 _SERVLETS = { 11 _SERVLETS = {
11 'cron': CronServlet, 12 'cron': CronServlet,
13 'patch': PatchServlet,
12 } 14 }
13 15
14 class Handler(webapp.RequestHandler): 16 class Handler(webapp.RequestHandler):
15 def __init__(self, request, response): 17 def __init__(self, request, response):
16 super(Handler, self).__init__(request, response) 18 super(Handler, self).__init__(request, response)
17 19
18 def _RedirectSpecialCases(self, path): 20 def _RedirectSpecialCases(self, path):
19 if not path or path == 'index.html': 21 if not path or path == 'index.html':
20 self.redirect('http://developer.google.com/chrome') 22 self.redirect('http://developer.google.com/chrome')
21 return True 23 return True
(...skipping 25 matching lines...) Expand all
47 path.insert(0, channel) 49 path.insert(0, channel)
48 new_url += '/'.join(path) 50 new_url += '/'.join(path)
49 self.redirect(new_url) 51 self.redirect(new_url)
50 return True 52 return True
51 53
52 def get(self): 54 def get(self):
53 path, request, response = (self.request.path.lstrip('/'), 55 path, request, response = (self.request.path.lstrip('/'),
54 self.request, 56 self.request,
55 self.response) 57 self.response)
56 58
57 if path in ['favicon.ico', 'robots.txt']:
58 response.set_status(404)
59 return
60
61 if self._RedirectSpecialCases(path): 59 if self._RedirectSpecialCases(path):
62 return 60 return
63 if self._RedirectFromCodeDotGoogleDotCom(path): 61 if self._RedirectFromCodeDotGoogleDotCom(path):
64 return 62 return
65 63
66 if path.startswith('_'): 64 if path.startswith('_'):
67 servlet_path = path[1:] 65 servlet_path = path[1:]
68 if servlet_path.find('/') == -1: 66 if servlet_path.find('/') == -1:
69 servlet_path += '/' 67 servlet_path += '/'
70 servlet_name, servlet_path = servlet_path.split('/', 1) 68 servlet_name, servlet_path = servlet_path.split('/', 1)
71 servlet = _SERVLETS.get(servlet_name) 69 servlet = _SERVLETS.get(servlet_name)
72 if servlet is None: 70 if servlet is None:
73 response.out.write('"%s" servlet not found' % servlet_path) 71 response.out.write('"%s" servlet not found' % servlet_path)
74 response.set_status(404) 72 response.set_status(404)
75 return 73 return
76 else: 74 else:
77 servlet_path = path 75 servlet_path = path
78 servlet = RenderServlet 76 servlet = RenderServlet
79 77
80 servlet_response = servlet(Request(servlet_path, request.headers)).Get() 78 servlet_response = servlet(Request(servlet_path, request.headers)).Get()
81 79
82 response.out.write(servlet_response.content.ToString()) 80 response.out.write(servlet_response.content.ToString())
83 response.headers.update(servlet_response.headers) 81 response.headers.update(servlet_response.headers)
84 response.status = servlet_response.status 82 response.status = servlet_response.status
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698