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

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

Issue 15009006: Docserver: refactor Servlet, ObjectStore, and ServerInstance architecture to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cduvall, redirect fix 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/preview.py
diff --git a/chrome/common/extensions/docs/server2/preview.py b/chrome/common/extensions/docs/server2/preview.py
index 5ea0e10493de6236fda9ffebb5e4d4093b2bfa8b..a12ee0ed0abebf5057ae9a1fc154b7e1bdba11dc 100755
--- a/chrome/common/extensions/docs/server2/preview.py
+++ b/chrome/common/extensions/docs/server2/preview.py
@@ -33,51 +33,25 @@ import build_server
# server quits.
build_server.main()
-from render_servlet import AlwaysOnline
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
-from local_renderer import LocalRenderer
import logging
import optparse
import os
import sys
import time
-def _GetLocalPath():
- if os.sep in sys.argv[0]:
- return os.path.join(sys.argv[0].rsplit(os.sep, 1)[0], os.pardir, os.pardir)
- return os.path.join(os.pardir, os.pardir)
-
-@AlwaysOnline
-def _Render(base_dir, path):
- renderer = LocalRenderer(base_dir)
- response = renderer.Render(path)
- while response.status in [301, 302]:
- redirect = response.headers['Location'].lstrip('/')
- sys.stderr.write('<!-- Redirected %s to %s -->\n' % (path, redirect))
- response = renderer.Render(redirect)
- return response
-
-class RequestHandler(BaseHTTPRequestHandler):
- class Factory(object):
- def __init__(self, base_dir):
- self._base_dir = base_dir
-
- def Create(self, *args):
- return RequestHandler(self._base_dir, *args)
-
- def __init__(self, base_dir, *args):
- self._base_dir = base_dir
- BaseHTTPRequestHandler.__init__(self, *args)
+from local_renderer import LocalRenderer
- """A HTTPRequestHandler that outputs the docs page generated by Handler.
- """
+class _RequestHandler(BaseHTTPRequestHandler):
+ '''A HTTPRequestHandler that outputs the docs page generated by Handler.
+ '''
def do_GET(self):
- response = _Render(self._base_dir, self.path)
+ response = LocalRenderer.Render(self.path)
self.send_response(response.status)
for k, v in response.headers.iteritems():
self.send_header(k, v)
self.end_headers()
- self.wfile.write(response.content)
+ self.wfile.write(response.content.ToString())
if __name__ == '__main__':
parser = optparse.OptionParser(
@@ -85,9 +59,6 @@ if __name__ == '__main__':
usage='usage: %prog [option]...')
parser.add_option('-p', '--port', default='8000',
help='port to run the server on')
- parser.add_option('-d', '--directory', default=_GetLocalPath(),
- help='extensions directory to serve from - '
- 'should be chrome/common/extensions within a Chromium checkout')
parser.add_option('-r', '--render', default='',
help='statically render a page and print to stdout rather than starting '
'the server, e.g. apps/storage.html. The path may optionally end '
@@ -98,13 +69,6 @@ if __name__ == '__main__':
(opts, argv) = parser.parse_args()
- if (not os.path.isdir(opts.directory) or
- not os.path.isdir(os.path.join(opts.directory, 'docs')) or
- not os.path.isdir(os.path.join(opts.directory, 'api'))):
- print('Specified directory does not exist or does not contain extension '
- 'docs.')
- exit()
-
if opts.render:
if opts.render.find('#') >= 0:
(path, iterations) = opts.render.rsplit('#', 1)
@@ -116,13 +80,13 @@ if __name__ == '__main__':
if opts.time:
start_time = time.time()
- response = _Render(opts.directory, path)
+ response = LocalRenderer.Render(path)
if response.status != 200:
print('Error status: %s' % response.status)
exit(1)
for _ in range(extra_iterations):
- _Render(opts.directory, path)
+ LocalRenderer.Render(path)
if opts.time:
print('Took %s seconds' % (time.time() - start_time))
@@ -144,8 +108,7 @@ if __name__ == '__main__':
print('')
logging.getLogger().setLevel(logging.INFO)
- server = HTTPServer(('', int(opts.port)),
- RequestHandler.Factory(opts.directory).Create)
+ server = HTTPServer(('', int(opts.port)), _RequestHandler)
try:
server.serve_forever()
finally:

Powered by Google App Engine
This is Rietveld 408576698