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

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

Issue 68873003: Docserver: Serve docs out of src/ not src/chrome/common/extensions. This allows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix samples Created 7 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 fnmatch import fnmatch 5 from fnmatch import fnmatch
6 import logging 6 import logging
7 from urlparse import urlparse 7 from urlparse import urlparse
8 8
9 from appengine_url_fetcher import AppEngineUrlFetcher 9 from appengine_url_fetcher import AppEngineUrlFetcher
10 from caching_file_system import CachingFileSystem 10 from caching_file_system import CachingFileSystem
11 from caching_rietveld_patcher import CachingRietveldPatcher 11 from caching_rietveld_patcher import CachingRietveldPatcher
12 from chained_compiled_file_system import ChainedCompiledFileSystem 12 from chained_compiled_file_system import ChainedCompiledFileSystem
13 from compiled_file_system import CompiledFileSystem 13 from compiled_file_system import CompiledFileSystem
14 from environment import IsDevServer 14 from environment import IsDevServer
15 from extensions_paths import CONTENT_PROVIDERS
15 from host_file_system_provider import HostFileSystemProvider 16 from host_file_system_provider import HostFileSystemProvider
16 from instance_servlet import InstanceServlet 17 from instance_servlet import InstanceServlet
17 from render_servlet import RenderServlet 18 from render_servlet import RenderServlet
18 from rietveld_patcher import RietveldPatcher, RietveldPatcherError 19 from rietveld_patcher import RietveldPatcher, RietveldPatcherError
19 from object_store_creator import ObjectStoreCreator 20 from object_store_creator import ObjectStoreCreator
20 from patched_file_system import PatchedFileSystem 21 from patched_file_system import PatchedFileSystem
21 from server_instance import ServerInstance 22 from server_instance import ServerInstance
22 from servlet import Request, Response, Servlet 23 from servlet import Request, Response, Servlet
23 import svn_constants
24 import url_constants 24 import url_constants
25 25
26
26 class _PatchServletDelegate(RenderServlet.Delegate): 27 class _PatchServletDelegate(RenderServlet.Delegate):
27 def __init__(self, issue, delegate): 28 def __init__(self, issue, delegate):
28 self._issue = issue 29 self._issue = issue
29 self._delegate = delegate 30 self._delegate = delegate
30 31
31 def CreateServerInstance(self): 32 def CreateServerInstance(self):
32 # start_empty=False because a patch can rely on files that are already in 33 # start_empty=False because a patch can rely on files that are already in
33 # SVN repository but not yet pulled into data store by cron jobs (a typical 34 # SVN repository but not yet pulled into data store by cron jobs (a typical
34 # example is to add documentation for an existing API). 35 # example is to add documentation for an existing API).
35 object_store_creator = ObjectStoreCreator(start_empty=False) 36 object_store_creator = ObjectStoreCreator(start_empty=False)
36 37
37 unpatched_file_system = self._delegate.CreateHostFileSystemProvider( 38 unpatched_file_system = self._delegate.CreateHostFileSystemProvider(
38 object_store_creator).GetTrunk() 39 object_store_creator).GetTrunk()
39 40
40 rietveld_patcher = CachingRietveldPatcher( 41 rietveld_patcher = CachingRietveldPatcher(
41 RietveldPatcher(svn_constants.EXTENSIONS_PATH, 42 RietveldPatcher(self._issue,
42 self._issue,
43 AppEngineUrlFetcher(url_constants.CODEREVIEW_SERVER)), 43 AppEngineUrlFetcher(url_constants.CODEREVIEW_SERVER)),
44 object_store_creator) 44 object_store_creator)
45 45
46 patched_file_system = PatchedFileSystem(unpatched_file_system, 46 patched_file_system = PatchedFileSystem(unpatched_file_system,
47 rietveld_patcher) 47 rietveld_patcher)
48 48
49 patched_host_file_system_provider = ( 49 patched_host_file_system_provider = (
50 self._delegate.CreateHostFileSystemProvider( 50 self._delegate.CreateHostFileSystemProvider(
51 object_store_creator, 51 object_store_creator,
52 # The patched file system needs to be online otherwise it'd be 52 # The patched file system needs to be online otherwise it'd be
(...skipping 11 matching lines...) Expand all
64 object_store_creator, 64 object_store_creator,
65 combined_compiled_fs_factory, 65 combined_compiled_fs_factory,
66 branch_utility, 66 branch_utility,
67 patched_host_file_system_provider, 67 patched_host_file_system_provider,
68 self._delegate.CreateGithubFileSystemProvider(object_store_creator), 68 self._delegate.CreateGithubFileSystemProvider(object_store_creator),
69 base_path='/_patch/%s/' % self._issue) 69 base_path='/_patch/%s/' % self._issue)
70 70
71 # HACK: if content_providers.json changes in this patch then the cron needs 71 # HACK: if content_providers.json changes in this patch then the cron needs
72 # to be re-run to pull in the new configuration. 72 # to be re-run to pull in the new configuration.
73 _, _, modified = rietveld_patcher.GetPatchedFiles() 73 _, _, modified = rietveld_patcher.GetPatchedFiles()
74 if svn_constants.CONTENT_PROVIDERS_PATH in modified: 74 if CONTENT_PROVIDERS in modified:
75 server_instance.content_providers.Cron().Get() 75 server_instance.content_providers.Cron().Get()
76 76
77 return server_instance 77 return server_instance
78 78
79 class PatchServlet(Servlet): 79 class PatchServlet(Servlet):
80 '''Servlet which renders patched docs. 80 '''Servlet which renders patched docs.
81 ''' 81 '''
82 def __init__(self, request, delegate=None): 82 def __init__(self, request, delegate=None):
83 self._request = request 83 self._request = request
84 self._delegate = delegate or InstanceServlet.Delegate() 84 self._delegate = delegate or InstanceServlet.Delegate()
(...skipping 25 matching lines...) Expand all
110 # Disable cache for patched content. 110 # Disable cache for patched content.
111 response.headers.pop('cache-control', None) 111 response.headers.pop('cache-control', None)
112 except RietveldPatcherError as e: 112 except RietveldPatcherError as e:
113 response = Response.NotFound(e.message, {'Content-Type': 'text/plain'}) 113 response = Response.NotFound(e.message, {'Content-Type': 'text/plain'})
114 114
115 redirect_url, permanent = response.GetRedirect() 115 redirect_url, permanent = response.GetRedirect()
116 if redirect_url is not None: 116 if redirect_url is not None:
117 response = Response.Redirect('/_patch/%s%s' % (issue, redirect_url), 117 response = Response.Redirect('/_patch/%s%s' % (issue, redirect_url),
118 permanent) 118 permanent)
119 return response 119 return response
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698