| OLD | NEW |
| 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 | 8 from empty_dir_file_system import EmptyDirFileSystem |
| 9 from environment import IsDevServer | 9 from environment import IsDevServer |
| 10 from features_bundle import FeaturesBundle | 10 from features_bundle import FeaturesBundle |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 self.api_categorizer = None | 25 self.api_categorizer = None |
| 26 self.samples_model = None | 26 self.samples_model = None |
| 27 | 27 |
| 28 | 28 |
| 29 class PlatformBundle(object): | 29 class PlatformBundle(object): |
| 30 '''Creates various objects for different platforms | 30 '''Creates various objects for different platforms |
| 31 ''' | 31 ''' |
| 32 def __init__(self, | 32 def __init__(self, |
| 33 branch_utility, | 33 branch_utility, |
| 34 compiled_fs_factory, | 34 compiled_fs_factory, |
| 35 host_fs_at_trunk, | 35 host_fs_at_master, |
| 36 host_file_system_iterator, | 36 host_file_system_iterator, |
| 37 object_store_creator, | 37 object_store_creator, |
| 38 base_path): | 38 base_path): |
| 39 self._branch_utility = branch_utility | 39 self._branch_utility = branch_utility |
| 40 self._compiled_fs_factory = compiled_fs_factory | 40 self._compiled_fs_factory = compiled_fs_factory |
| 41 self._host_fs_at_trunk = host_fs_at_trunk | 41 self._host_fs_at_master = host_fs_at_master |
| 42 self._host_file_system_iterator = host_file_system_iterator | 42 self._host_file_system_iterator = host_file_system_iterator |
| 43 self._object_store_creator = object_store_creator | 43 self._object_store_creator = object_store_creator |
| 44 self._base_path = base_path | 44 self._base_path = base_path |
| 45 self._platform_data = dict((p, _PlatformData()) for p in GetPlatforms()) | 45 self._platform_data = dict((p, _PlatformData()) for p in GetPlatforms()) |
| 46 | 46 |
| 47 def GetSamplesModel(self, platform): | 47 def GetSamplesModel(self, platform): |
| 48 if self._platform_data[platform].samples_model is None: | 48 if self._platform_data[platform].samples_model is None: |
| 49 # Note: samples are super slow in the dev server because it doesn't | 49 # Note: samples are super slow in the dev server because it doesn't |
| 50 # support async fetch, so disable them. | 50 # support async fetch, so disable them. |
| 51 if IsDevServer(): | 51 if IsDevServer(): |
| 52 extension_samples_fs = EmptyDirFileSystem() | 52 extension_samples_fs = EmptyDirFileSystem() |
| 53 app_samples_fs = EmptyDirFileSystem() | 53 app_samples_fs = EmptyDirFileSystem() |
| 54 else: | 54 else: |
| 55 extension_samples_fs = self._host_fs_at_trunk | 55 extension_samples_fs = self._host_fs_at_master |
| 56 # TODO(kalman): Re-enable the apps samples, see http://crbug.com/344097. | 56 # TODO(kalman): Re-enable the apps samples, see http://crbug.com/344097. |
| 57 app_samples_fs = EmptyDirFileSystem() | 57 app_samples_fs = EmptyDirFileSystem() |
| 58 #app_samples_fs = github_file_system_provider.Create( | 58 #app_samples_fs = github_file_system_provider.Create( |
| 59 # 'GoogleChrome', 'chrome-app-samples') | 59 # 'GoogleChrome', 'chrome-app-samples') |
| 60 self._platform_data[platform].samples_model = SamplesModel( | 60 self._platform_data[platform].samples_model = SamplesModel( |
| 61 extension_samples_fs, | 61 extension_samples_fs, |
| 62 app_samples_fs, | 62 app_samples_fs, |
| 63 self._compiled_fs_factory, | 63 self._compiled_fs_factory, |
| 64 self.GetReferenceResolver(platform), | 64 self.GetReferenceResolver(platform), |
| 65 self._base_path, | 65 self._base_path, |
| 66 platform) | 66 platform) |
| 67 return self._platform_data[platform].samples_model | 67 return self._platform_data[platform].samples_model |
| 68 | 68 |
| 69 def GetFeaturesBundle(self, platform): | 69 def GetFeaturesBundle(self, platform): |
| 70 if self._platform_data[platform].features_bundle is None: | 70 if self._platform_data[platform].features_bundle is None: |
| 71 self._platform_data[platform].features_bundle = FeaturesBundle( | 71 self._platform_data[platform].features_bundle = FeaturesBundle( |
| 72 self._host_fs_at_trunk, | 72 self._host_fs_at_master, |
| 73 self._compiled_fs_factory, | 73 self._compiled_fs_factory, |
| 74 self._object_store_creator, | 74 self._object_store_creator, |
| 75 platform) | 75 platform) |
| 76 return self._platform_data[platform].features_bundle | 76 return self._platform_data[platform].features_bundle |
| 77 | 77 |
| 78 def GetAPIModels(self, platform): | 78 def GetAPIModels(self, platform): |
| 79 if self._platform_data[platform].api_models is None: | 79 if self._platform_data[platform].api_models is None: |
| 80 # TODO(danielj41): Filter APIModels data here rather than passing the | 80 # TODO(danielj41): Filter APIModels data here rather than passing the |
| 81 # platform. | 81 # platform. |
| 82 self._platform_data[platform].api_models = APIModels( | 82 self._platform_data[platform].api_models = APIModels( |
| 83 self.GetFeaturesBundle(platform), | 83 self.GetFeaturesBundle(platform), |
| 84 self._compiled_fs_factory, | 84 self._compiled_fs_factory, |
| 85 self._host_fs_at_trunk, | 85 self._host_fs_at_master, |
| 86 self._object_store_creator, | 86 self._object_store_creator, |
| 87 platform, | 87 platform, |
| 88 SchemaProcessorFactory( | 88 SchemaProcessorFactory( |
| 89 Future(callback=lambda: self.GetReferenceResolver(platform)), | 89 Future(callback=lambda: self.GetReferenceResolver(platform)), |
| 90 Future(callback=lambda: self.GetAPIModels(platform)), | 90 Future(callback=lambda: self.GetAPIModels(platform)), |
| 91 Future(callback=lambda: self.GetFeaturesBundle(platform)), | 91 Future(callback=lambda: self.GetFeaturesBundle(platform)), |
| 92 self._compiled_fs_factory, | 92 self._compiled_fs_factory, |
| 93 self._host_fs_at_trunk)) | 93 self._host_fs_at_master)) |
| 94 return self._platform_data[platform].api_models | 94 return self._platform_data[platform].api_models |
| 95 | 95 |
| 96 def GetReferenceResolver(self, platform): | 96 def GetReferenceResolver(self, platform): |
| 97 if self._platform_data[platform].reference_resolver is None: | 97 if self._platform_data[platform].reference_resolver is None: |
| 98 self._platform_data[platform].reference_resolver = ReferenceResolver( | 98 self._platform_data[platform].reference_resolver = ReferenceResolver( |
| 99 self.GetAPIModels(platform), | 99 self.GetAPIModels(platform), |
| 100 self._object_store_creator.Create(ReferenceResolver, | 100 self._object_store_creator.Create(ReferenceResolver, |
| 101 category=platform)) | 101 category=platform)) |
| 102 return self._platform_data[platform].reference_resolver | 102 return self._platform_data[platform].reference_resolver |
| 103 | 103 |
| 104 def GetAvailabilityFinder(self, platform): | 104 def GetAvailabilityFinder(self, platform): |
| 105 if self._platform_data[platform].availability_finder is None: | 105 if self._platform_data[platform].availability_finder is None: |
| 106 self._platform_data[platform].availability_finder = AvailabilityFinder( | 106 self._platform_data[platform].availability_finder = AvailabilityFinder( |
| 107 self._branch_utility, | 107 self._branch_utility, |
| 108 self._compiled_fs_factory, | 108 self._compiled_fs_factory, |
| 109 self._host_file_system_iterator, | 109 self._host_file_system_iterator, |
| 110 self._host_fs_at_trunk, | 110 self._host_fs_at_master, |
| 111 self._object_store_creator, | 111 self._object_store_creator, |
| 112 platform, | 112 platform, |
| 113 SchemaProcessorFactory( | 113 SchemaProcessorFactory( |
| 114 Future(callback=lambda: self.GetReferenceResolver(platform)), | 114 Future(callback=lambda: self.GetReferenceResolver(platform)), |
| 115 Future(callback=lambda: self.GetAPIModels(platform)), | 115 Future(callback=lambda: self.GetAPIModels(platform)), |
| 116 Future(callback=lambda: self.GetFeaturesBundle(platform)), | 116 Future(callback=lambda: self.GetFeaturesBundle(platform)), |
| 117 self._compiled_fs_factory, | 117 self._compiled_fs_factory, |
| 118 self._host_fs_at_trunk)) | 118 self._host_fs_at_master)) |
| 119 return self._platform_data[platform].availability_finder | 119 return self._platform_data[platform].availability_finder |
| 120 | 120 |
| 121 def GetAPICategorizer(self, platform): | 121 def GetAPICategorizer(self, platform): |
| 122 if self._platform_data[platform].api_categorizer is None: | 122 if self._platform_data[platform].api_categorizer is None: |
| 123 self._platform_data[platform].api_categorizer = APICategorizer( | 123 self._platform_data[platform].api_categorizer = APICategorizer( |
| 124 self._host_fs_at_trunk, | 124 self._host_fs_at_master, |
| 125 self._compiled_fs_factory, | 125 self._compiled_fs_factory, |
| 126 platform) | 126 platform) |
| 127 return self._platform_data[platform].api_categorizer | 127 return self._platform_data[platform].api_categorizer |
| 128 | 128 |
| 129 def Cron(self): | 129 def Cron(self): |
| 130 return All(self.GetAPIModels(platform).Cron() | 130 return All(self.GetAPIModels(platform).Cron() |
| 131 for platform in self._platform_data) | 131 for platform in self._platform_data) |
| 132 | 132 |
| 133 def GetIdentity(self): | 133 def GetIdentity(self): |
| 134 return self._host_fs_at_trunk.GetIdentity() | 134 return self._host_fs_at_master.GetIdentity() |
| OLD | NEW |