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

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

Issue 344453003: Docserver: separate models for apps and extensions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase/Add comment Created 6 years, 6 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 api_categorizer import APICategorizer
6 from api_data_source import APIDataSource 5 from api_data_source import APIDataSource
7 from api_list_data_source import APIListDataSource 6 from api_list_data_source import APIListDataSource
8 from api_models import APIModels
9 from availability_finder import AvailabilityFinder
10 from compiled_file_system import CompiledFileSystem 7 from compiled_file_system import CompiledFileSystem
11 from content_providers import ContentProviders 8 from content_providers import ContentProviders
12 from document_renderer import DocumentRenderer 9 from document_renderer import DocumentRenderer
13 from empty_dir_file_system import EmptyDirFileSystem 10 from empty_dir_file_system import EmptyDirFileSystem
14 from environment import IsDevServer 11 from environment import IsDevServer
15 from features_bundle import FeaturesBundle
16 from gcs_file_system_provider import CloudStorageFileSystemProvider 12 from gcs_file_system_provider import CloudStorageFileSystemProvider
17 from github_file_system_provider import GithubFileSystemProvider 13 from github_file_system_provider import GithubFileSystemProvider
18 from host_file_system_iterator import HostFileSystemIterator 14 from host_file_system_iterator import HostFileSystemIterator
19 from host_file_system_provider import HostFileSystemProvider 15 from host_file_system_provider import HostFileSystemProvider
20 from object_store_creator import ObjectStoreCreator 16 from object_store_creator import ObjectStoreCreator
21 from reference_resolver import ReferenceResolver 17 from platform_bundle import PlatformBundle
22 from samples_data_source import SamplesDataSource 18 from samples_data_source import SamplesDataSource
23 from table_of_contents_renderer import TableOfContentsRenderer 19 from table_of_contents_renderer import TableOfContentsRenderer
24 from template_renderer import TemplateRenderer 20 from template_renderer import TemplateRenderer
25 from test_branch_utility import TestBranchUtility 21 from test_branch_utility import TestBranchUtility
26 from test_object_store import TestObjectStore 22 from test_object_store import TestObjectStore
27 23
28 24
29 class ServerInstance(object): 25 class ServerInstance(object):
30 26
31 def __init__(self, 27 def __init__(self,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 self.github_file_system_provider = github_file_system_provider 61 self.github_file_system_provider = github_file_system_provider
66 self.gcs_file_system_provider = gcs_file_system_provider 62 self.gcs_file_system_provider = gcs_file_system_provider
67 63
68 assert base_path.startswith('/') and base_path.endswith('/') 64 assert base_path.startswith('/') and base_path.endswith('/')
69 self.base_path = base_path 65 self.base_path = base_path
70 66
71 self.host_file_system_iterator = HostFileSystemIterator( 67 self.host_file_system_iterator = HostFileSystemIterator(
72 host_file_system_provider, 68 host_file_system_provider,
73 branch_utility) 69 branch_utility)
74 70
75 self.features_bundle = FeaturesBundle( 71 self.platform_bundle = PlatformBundle(
72 branch_utility,
73 self.compiled_fs_factory,
76 host_fs_at_trunk, 74 host_fs_at_trunk,
77 self.compiled_fs_factory, 75 self.host_file_system_iterator,
78 self.object_store_creator) 76 self.object_store_creator)
79 77
80 self.api_models = APIModels(
81 self.features_bundle,
82 self.compiled_fs_factory,
83 host_fs_at_trunk)
84
85 self.availability_finder = AvailabilityFinder(
86 branch_utility,
87 compiled_fs_factory,
88 self.host_file_system_iterator,
89 host_fs_at_trunk,
90 object_store_creator)
91
92 self.api_categorizer = APICategorizer(
93 host_fs_at_trunk,
94 compiled_fs_factory)
95
96 self.ref_resolver = ReferenceResolver(
97 self.api_models,
98 self.object_store_creator.Create(ReferenceResolver))
99
100 # Note: samples are super slow in the dev server because it doesn't support 78 # Note: samples are super slow in the dev server because it doesn't support
101 # async fetch, so disable them. 79 # async fetch, so disable them.
102 if IsDevServer(): 80 if IsDevServer():
103 extension_samples_fs = EmptyDirFileSystem() 81 extension_samples_fs = EmptyDirFileSystem()
104 app_samples_fs = EmptyDirFileSystem() 82 app_samples_fs = EmptyDirFileSystem()
105 else: 83 else:
106 extension_samples_fs = host_fs_at_trunk 84 extension_samples_fs = host_fs_at_trunk
107 # TODO(kalman): Re-enable the apps samples, see http://crbug.com/344097. 85 # TODO(kalman): Re-enable the apps samples, see http://crbug.com/344097.
108 app_samples_fs = EmptyDirFileSystem() 86 app_samples_fs = EmptyDirFileSystem()
109 #app_samples_fs = github_file_system_provider.Create( 87 #app_samples_fs = github_file_system_provider.Create(
110 # 'GoogleChrome', 'chrome-app-samples') 88 # 'GoogleChrome', 'chrome-app-samples')
111 self.samples_data_source_factory = SamplesDataSource.Factory( 89 self.samples_data_source_factory = SamplesDataSource.Factory(
112 extension_samples_fs, 90 extension_samples_fs,
113 app_samples_fs, 91 app_samples_fs,
114 CompiledFileSystem.Factory(object_store_creator), 92 CompiledFileSystem.Factory(object_store_creator),
115 self.ref_resolver, 93 self.platform_bundle,
116 base_path) 94 base_path)
117 95
118 self.content_providers = ContentProviders( 96 self.content_providers = ContentProviders(
119 object_store_creator, 97 object_store_creator,
120 self.compiled_fs_factory, 98 self.compiled_fs_factory,
121 host_fs_at_trunk, 99 host_fs_at_trunk,
122 self.github_file_system_provider, 100 self.github_file_system_provider,
123 self.gcs_file_system_provider) 101 self.gcs_file_system_provider)
124 102
125 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry, 103 # TODO(kalman): Move all the remaining DataSources into DataSourceRegistry,
126 # then factor out the DataSource creation into a factory method, so that 104 # then factor out the DataSource creation into a factory method, so that
127 # the entire ServerInstance doesn't need to be passed in here. 105 # the entire ServerInstance doesn't need to be passed in here.
128 self.template_renderer = TemplateRenderer(self) 106 self.template_renderer = TemplateRenderer(self)
129 107
130 # TODO(kalman): It may be better for |document_renderer| to construct a 108 # TODO(kalman): It may be better for |document_renderer| to construct a
131 # TemplateDataSource itself rather than depending on template_renderer, but 109 # TemplateDataSource itself rather than depending on template_renderer, but
132 # for that the above todo should be addressed. 110 # for that the above todo should be addressed.
133 self.document_renderer = DocumentRenderer( 111 self.document_renderer = DocumentRenderer(
134 TableOfContentsRenderer(host_fs_at_trunk, 112 TableOfContentsRenderer(host_fs_at_trunk,
135 compiled_fs_factory, 113 compiled_fs_factory,
136 self.template_renderer), 114 self.template_renderer),
137 self.ref_resolver) 115 self.platform_bundle)
138 116
139 @staticmethod 117 @staticmethod
140 def ForTest(file_system=None, file_system_provider=None, base_path='/'): 118 def ForTest(file_system=None, file_system_provider=None, base_path='/'):
141 object_store_creator = ObjectStoreCreator.ForTest() 119 object_store_creator = ObjectStoreCreator.ForTest()
142 if file_system is None and file_system_provider is None: 120 if file_system is None and file_system_provider is None:
143 raise ValueError('Either |file_system| or |file_system_provider| ' 121 raise ValueError('Either |file_system| or |file_system_provider| '
144 'must be specified') 122 'must be specified')
145 if file_system and file_system_provider: 123 if file_system and file_system_provider:
146 raise ValueError('Only one of |file_system| and |file_system_provider| ' 124 raise ValueError('Only one of |file_system| and |file_system_provider| '
147 'can be specified') 125 'can be specified')
(...skipping 15 matching lines...) Expand all
163 store_type=TestObjectStore) 141 store_type=TestObjectStore)
164 host_file_system_provider = HostFileSystemProvider.ForLocal( 142 host_file_system_provider = HostFileSystemProvider.ForLocal(
165 object_store_creator) 143 object_store_creator)
166 return ServerInstance( 144 return ServerInstance(
167 object_store_creator, 145 object_store_creator,
168 CompiledFileSystem.Factory(object_store_creator), 146 CompiledFileSystem.Factory(object_store_creator),
169 TestBranchUtility.CreateWithCannedData(), 147 TestBranchUtility.CreateWithCannedData(),
170 host_file_system_provider, 148 host_file_system_provider,
171 GithubFileSystemProvider.ForEmpty(), 149 GithubFileSystemProvider.ForEmpty(),
172 CloudStorageFileSystemProvider(object_store_creator)) 150 CloudStorageFileSystemProvider(object_store_creator))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698