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

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

Issue 12996003: Dynamically generate a heading for Extension Docs API pages (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moving logic into availability_data_source Created 7 years, 8 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 fnmatch import fnmatch 5 from fnmatch import fnmatch
6 import mimetypes 6 import mimetypes
7 import os
8 7
9 from api_data_source import APIDataSource 8 from api_data_source import APIDataSource
10 from api_list_data_source import APIListDataSource 9 from api_list_data_source import APIListDataSource
11 from appengine_blobstore import AppEngineBlobstore 10 from appengine_blobstore import AppEngineBlobstore
12 from appengine_url_fetcher import AppEngineUrlFetcher 11 from appengine_url_fetcher import AppEngineUrlFetcher
12 from availability_data_source import AvailabilityDataSource
13 from branch_utility import BranchUtility 13 from branch_utility import BranchUtility
14 from chrome_version_utility import ChromeVersionUtility
14 from compiled_file_system import CompiledFileSystem 15 from compiled_file_system import CompiledFileSystem
15 from example_zipper import ExampleZipper 16 from example_zipper import ExampleZipper
16 from file_system import FileNotFoundError 17 from file_system import FileNotFoundError
17 from github_file_system import GithubFileSystem 18 from github_file_system import GithubFileSystem
18 from in_memory_object_store import InMemoryObjectStore 19 from in_memory_object_store import InMemoryObjectStore
19 from intro_data_source import IntroDataSource 20 from intro_data_source import IntroDataSource
20 from local_file_system import LocalFileSystem 21 from local_file_system import LocalFileSystem
21 from caching_file_system import CachingFileSystem 22 from caching_file_system import CachingFileSystem
22 from object_store_creator import ObjectStoreCreator 23 from object_store_creator import ObjectStoreCreator
23 from path_canonicalizer import PathCanonicalizer 24 from path_canonicalizer import PathCanonicalizer
(...skipping 17 matching lines...) Expand all
41 42
42 branch_utility = None 43 branch_utility = None
43 github_file_system = None 44 github_file_system = None
44 45
45 @staticmethod 46 @staticmethod
46 def GetOrCreate(channel): 47 def GetOrCreate(channel):
47 # Lazily create so that we don't do unnecessary work in tests. 48 # Lazily create so that we don't do unnecessary work in tests.
48 if ServerInstance.branch_utility is None: 49 if ServerInstance.branch_utility is None:
49 ServerInstance.branch_utility = BranchUtility( 50 ServerInstance.branch_utility = BranchUtility(
50 url_constants.OMAHA_PROXY_URL, AppEngineUrlFetcher()) 51 url_constants.OMAHA_PROXY_URL, AppEngineUrlFetcher())
51 branch = ServerInstance.branch_utility.GetBranchNumberForChannelName( 52
52 channel) 53 branch = ServerInstance.branch_utility.GetChannelInfoForChannelName(
54 channel)['branch']
53 55
54 # Use the branch as the key to |_instances| since the branch data is 56 # Use the branch as the key to |_instances| since the branch data is
55 # predictable while the channel data (channels can swich branches) isn't. 57 # predictable while the channel data (channels can swich branches) isn't.
56 instance = ServerInstance._instances.get(branch) 58 instance = ServerInstance._instances.get(branch)
57 if instance is None: 59 if instance is None:
58 instance = ServerInstance._CreateForProduction(channel, branch) 60 instance = ServerInstance._CreateForProduction(channel, branch)
59 ServerInstance._instances[branch] = instance 61 ServerInstance._instances[branch] = instance
60 return instance 62 return instance
61 63
62 @staticmethod 64 @staticmethod
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 svn_file_system, 108 svn_file_system,
107 github_file_system): 109 github_file_system):
108 self.svn_file_system = svn_file_system 110 self.svn_file_system = svn_file_system
109 111
110 self.github_file_system = github_file_system 112 self.github_file_system = github_file_system
111 113
112 self.compiled_fs_factory = CompiledFileSystem.Factory( 114 self.compiled_fs_factory = CompiledFileSystem.Factory(
113 svn_file_system, 115 svn_file_system,
114 object_store_creator_factory) 116 object_store_creator_factory)
115 117
118 self.chrome_version_utility = ChromeVersionUtility(
119 url_constants.OMAHA_DEV_HISTORY,
120 AppEngineUrlFetcher(None))
121
122 self.availability_data_source_factory = AvailabilityDataSource.Factory(
123 self.chrome_version_utility,
124 svn_file_system)
125
116 self.api_list_data_source_factory = APIListDataSource.Factory( 126 self.api_list_data_source_factory = APIListDataSource.Factory(
117 self.compiled_fs_factory, 127 self.compiled_fs_factory,
118 svn_constants.API_PATH, 128 svn_constants.API_PATH,
119 svn_constants.PUBLIC_TEMPLATE_PATH) 129 svn_constants.PUBLIC_TEMPLATE_PATH)
120 130
121 self.api_data_source_factory = APIDataSource.Factory( 131 self.api_data_source_factory = APIDataSource.Factory(
122 self.compiled_fs_factory, 132 self.compiled_fs_factory,
123 svn_constants.API_PATH) 133 svn_constants.API_PATH,
134 self.availability_data_source_factory)
124 135
125 self.ref_resolver_factory = ReferenceResolver.Factory( 136 self.ref_resolver_factory = ReferenceResolver.Factory(
126 self.api_data_source_factory, 137 self.api_data_source_factory,
127 self.api_list_data_source_factory, 138 self.api_list_data_source_factory,
128 object_store_creator_factory) 139 object_store_creator_factory)
129 140
130 self.api_data_source_factory.SetReferenceResolverFactory( 141 self.api_data_source_factory.SetReferenceResolverFactory(
131 self.ref_resolver_factory) 142 self.ref_resolver_factory)
132 143
133 self.samples_data_source_factory = SamplesDataSource.Factory( 144 self.samples_data_source_factory = SamplesDataSource.Factory(
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 elif path.endswith('.html'): 227 elif path.endswith('.html'):
217 content = templates.Render(path) 228 content = templates.Render(path)
218 229
219 response.headers['x-frame-options'] = 'sameorigin' 230 response.headers['x-frame-options'] = 'sameorigin'
220 if content: 231 if content:
221 response.headers['cache-control'] = 'max-age=300' 232 response.headers['cache-control'] = 'max-age=300'
222 response.out.write(content) 233 response.out.write(content)
223 else: 234 else:
224 response.set_status(404); 235 response.set_status(404);
225 response.out.write(templates.Render('404')) 236 response.out.write(templates.Render('404'))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698