Index: chrome/common/extensions/docs/server2/permissions_data_source.py |
diff --git a/chrome/common/extensions/docs/server2/permissions_data_source.py b/chrome/common/extensions/docs/server2/permissions_data_source.py |
index fb8c239ebad2dcb65e61d0af57721f12e47447f0..24db438ad3dcbbe9ff0bdc6bc67937378b12f6fe 100644 |
--- a/chrome/common/extensions/docs/server2/permissions_data_source.py |
+++ b/chrome/common/extensions/docs/server2/permissions_data_source.py |
@@ -7,8 +7,8 @@ from operator import itemgetter |
from data_source import DataSource |
from extensions_paths import PRIVATE_TEMPLATES |
-from features_utility import Filtered |
from future import Future |
+from platform_util import GetPlatforms |
def _ListifyPermissions(permissions): |
@@ -29,7 +29,7 @@ def _AddDependencyDescriptions(permissions, api_features): |
''' |
for name, permission in permissions.iteritems(): |
# Don't overwrite the description created by expanding a partial template. |
- if 'partial' in permission or not permission['platforms']: |
+ if 'partial' in permission: |
continue |
has_deps = False |
@@ -45,18 +45,21 @@ class PermissionsDataSource(DataSource): |
'''Load and format permissions features to be used by templates. |
''' |
def __init__(self, server_instance, request): |
- self._features_bundle = server_instance.features_bundle |
+ self._platform_bundle = server_instance.platform_bundle |
self._object_store = server_instance.object_store_creator.Create( |
PermissionsDataSource) |
self._template_cache = server_instance.compiled_fs_factory.ForTemplates( |
server_instance.host_file_system_provider.GetTrunk()) |
- def _CreatePermissionsData(self): |
- api_features_future = self._features_bundle.GetAPIFeatures() |
- permission_features_future = self._features_bundle.GetPermissionFeatures() |
+ def _CreatePermissionsDataForPlatform(self, platform): |
+ features_bundle = self._platform_bundle.GetFeaturesBundle(platform) |
+ api_features_future = features_bundle.GetAPIFeatures() |
+ permission_features_future = features_bundle.GetPermissionFeatures() |
+ |
def resolve(): |
+ api_features = api_features_future.Get() |
permission_features = permission_features_future.Get() |
- _AddDependencyDescriptions(permission_features, api_features_future.Get()) |
+ _AddDependencyDescriptions(permission_features, api_features) |
# Turn partial templates into descriptions, ensure anchors are set. |
for permission in permission_features.values(): |
@@ -67,13 +70,17 @@ class PermissionsDataSource(DataSource): |
PRIVATE_TEMPLATES + permission['partial']).Get() |
del permission['partial'] |
- def filter_for_platform(permissions, platform): |
- return _ListifyPermissions(Filtered(permissions, platform)) |
- return { |
- 'declare_apps': filter_for_platform(permission_features, 'apps'), |
- 'declare_extensions': filter_for_platform( |
- permission_features, 'extensions') |
- } |
+ return _ListifyPermissions(permission_features) |
+ return Future(callback=resolve) |
+ |
+ def _CreatePermissionsData(self): |
+ permissions_data_futures = dict( |
+ (platform, self._CreatePermissionsDataForPlatform(platform)) |
+ for platform in GetPlatforms()) |
+ |
+ def resolve(): |
+ return dict(('declare_' + platform, future.Get()) |
+ for platform, future in permissions_data_futures.iteritems()) |
return Future(callback=resolve) |
def _GetCachedPermissionsData(self): |