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

Unified Diff: chrome/common/extensions/docs/server2/manifest_data_source.py

Issue 23867003: Docserver: Consolidate features caching and access. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: let's try this again, shall we? Created 7 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/manifest_data_source.py
diff --git a/chrome/common/extensions/docs/server2/manifest_data_source.py b/chrome/common/extensions/docs/server2/manifest_data_source.py
index 6a850da177c6c63aa6c3ebd6266c7073d49524e1..ac4d99cfd94b6bea0dc467c3ca719c88f783a4b8 100644
--- a/chrome/common/extensions/docs/server2/manifest_data_source.py
+++ b/chrome/common/extensions/docs/server2/manifest_data_source.py
@@ -6,7 +6,7 @@ import json
from data_source import DataSource
import features_utility
-from manifest_features import CreateManifestFeatures, ConvertDottedKeysToNested
+from manifest_features import ConvertDottedKeysToNested
from third_party.json_schema_compiler.json_parse import Parse
def _ListifyAndSortDocs(features, app_name):
@@ -100,36 +100,32 @@ class ManifestDataSource(DataSource):
'''Provides access to the properties in manifest features.
'''
def __init__(self, server_instance, _):
- self._manifest_path = server_instance.manifest_json_path
- self._features_path = server_instance.manifest_features_path
- self._file_system = server_instance.host_file_system
- self._cache = server_instance.compiled_host_fs_factory.Create(
- self._CreateManifestData, ManifestDataSource)
-
- def _CreateManifestData(self, _, content):
- '''Combine the contents of |_manifest_path| and |_features_path| and filter
- the results into lists specific to apps or extensions for templates. Marks
- up features with annotations.
- '''
+ self._features_bundle = server_instance.features_bundle
+ self._object_store = server_instance.object_store_creator.Create(
+ ManifestDataSource)
+
+ def _CreateManifestData(self):
def for_templates(manifest_features, platform):
return _AddLevelAnnotations(
_ListifyAndSortDocs(
ConvertDottedKeysToNested(
features_utility.Filtered(manifest_features, platform)),
app_name=platform.capitalize()))
-
- manifest_json = Parse(self._file_system.ReadSingle(self._manifest_path))
- manifest_features = CreateManifestFeatures(
- features_json=Parse(content), manifest_json=manifest_json)
-
+ manifest_features = self._features_bundle.GetManifestFeatures()
return {
- 'apps': for_templates(manifest_features, 'app'),
- 'extensions': for_templates(manifest_features, 'extension')
+ 'apps': for_templates(manifest_features, 'apps'),
+ 'extensions': for_templates(manifest_features, 'extensions')
}
+ def _GetCachedManifestData(self, force_update=False):
+ data = self._object_store.Get('manifest_data').Get()
+ if data is None or force_update:
+ data = self._CreateManifestData()
+ self._object_store.Set('manifest_data', data)
+ return data
+
def Cron(self):
- self._cache.GetFromFile(self._features_path)
- self._file_system.ReadSingle(self._manifest_path)
+ self._GetCachedManifestData(force_update=True)
def get(self, key):
- return self._cache.GetFromFile(self._features_path)[key]
+ return self._GetCachedManifestData().get(key)

Powered by Google App Engine
This is Rietveld 408576698