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

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

Issue 437323003: Docserver: Factor SamplesModel out of SamplesDataSource (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 5 from api_categorizer import APICategorizer
6 from api_models import APIModels 6 from api_models import APIModels
7 from availability_finder import AvailabilityFinder 7 from availability_finder import AvailabilityFinder
8 from empty_dir_file_system import EmptyDirFileSystem
9 from environment import IsDevServer
8 from features_bundle import FeaturesBundle 10 from features_bundle import FeaturesBundle
9 from future import All 11 from future import All
10 from platform_util import GetPlatforms, PlatformToExtensionType 12 from platform_util import GetPlatforms, PlatformToExtensionType
11 from reference_resolver import ReferenceResolver 13 from reference_resolver import ReferenceResolver
14 from samples_model import SamplesModel
12 15
13 16
14 class _PlatformData(object): 17 class _PlatformData(object):
15 def __init__(self): 18 def __init__(self):
16 self.features_bundle = None 19 self.features_bundle = None
17 self.api_models = None 20 self.api_models = None
18 self.reference_resolver = None 21 self.reference_resolver = None
19 self.availability_finder = None 22 self.availability_finder = None
20 self.api_categorizer = None 23 self.api_categorizer = None
24 self.samples_model = None
21 25
22 26
23 class PlatformBundle(object): 27 class PlatformBundle(object):
24 '''Creates various objects for different platforms 28 '''Creates various objects for different platforms
25 ''' 29 '''
26 def __init__(self, 30 def __init__(self,
27 branch_utility, 31 branch_utility,
28 compiled_fs_factory, 32 compiled_fs_factory,
29 host_fs_at_trunk, 33 host_fs_at_trunk,
30 host_file_system_iterator, 34 host_file_system_iterator,
31 object_store_creator): 35 object_store_creator,
36 base_path):
32 self._branch_utility = branch_utility 37 self._branch_utility = branch_utility
33 self._compiled_fs_factory = compiled_fs_factory 38 self._compiled_fs_factory = compiled_fs_factory
34 self._host_fs_at_trunk = host_fs_at_trunk 39 self._host_fs_at_trunk = host_fs_at_trunk
35 self._host_file_system_iterator = host_file_system_iterator 40 self._host_file_system_iterator = host_file_system_iterator
36 self._object_store_creator = object_store_creator 41 self._object_store_creator = object_store_creator
42 self._base_path = base_path
37 self._platform_data = dict((p, _PlatformData()) for p in GetPlatforms()) 43 self._platform_data = dict((p, _PlatformData()) for p in GetPlatforms())
38 44
45 def GetSamplesModel(self, platform):
46 if self._platform_data[platform].samples_model is None:
47 # Note: samples are super slow in the dev server because it doesn't
48 # support async fetch, so disable them.
49 if IsDevServer():
50 extension_samples_fs = EmptyDirFileSystem()
51 app_samples_fs = EmptyDirFileSystem()
52 else:
53 extension_samples_fs = self._host_fs_at_trunk
54 # TODO(kalman): Re-enable the apps samples, see http://crbug.com/344097.
55 app_samples_fs = EmptyDirFileSystem()
56 #app_samples_fs = github_file_system_provider.Create(
57 # 'GoogleChrome', 'chrome-app-samples')
58 self._platform_data[platform].samples_model = SamplesModel(
59 extension_samples_fs,
60 app_samples_fs,
61 self._compiled_fs_factory,
62 self.GetReferenceResolver(platform),
63 self._base_path,
64 platform)
65 return self._platform_data[platform].samples_model
66
39 def GetFeaturesBundle(self, platform): 67 def GetFeaturesBundle(self, platform):
40 if self._platform_data[platform].features_bundle is None: 68 if self._platform_data[platform].features_bundle is None:
41 self._platform_data[platform].features_bundle = FeaturesBundle( 69 self._platform_data[platform].features_bundle = FeaturesBundle(
42 self._host_fs_at_trunk, 70 self._host_fs_at_trunk,
43 self._compiled_fs_factory, 71 self._compiled_fs_factory,
44 self._object_store_creator, 72 self._object_store_creator,
45 platform) 73 platform)
46 return self._platform_data[platform].features_bundle 74 return self._platform_data[platform].features_bundle
47 75
48 def GetAPIModels(self, platform): 76 def GetAPIModels(self, platform):
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 self._compiled_fs_factory, 111 self._compiled_fs_factory,
84 platform) 112 platform)
85 return self._platform_data[platform].api_categorizer 113 return self._platform_data[platform].api_categorizer
86 114
87 def Cron(self): 115 def Cron(self):
88 return All(self.GetAPIModels(platform).Cron() 116 return All(self.GetAPIModels(platform).Cron()
89 for platform in self._platform_data) 117 for platform in self._platform_data)
90 118
91 def GetIdentity(self): 119 def GetIdentity(self):
92 return self._host_fs_at_trunk.GetIdentity() 120 return self._host_fs_at_trunk.GetIdentity()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698