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

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

Issue 438403002: Conver APIListDataSource to use Future.Then() rather than Get(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/app.yaml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/docs/server2/api_list_data_source.py
diff --git a/chrome/common/extensions/docs/server2/api_list_data_source.py b/chrome/common/extensions/docs/server2/api_list_data_source.py
index e3f8697014c57ce68f381ed08da5f7d3e40d316e..3a9c4f5e93692207bc472e8a67492e93d1616a18 100644
--- a/chrome/common/extensions/docs/server2/api_list_data_source.py
+++ b/chrome/common/extensions/docs/server2/api_list_data_source.py
@@ -32,22 +32,24 @@ class APIListDataSource(DataSource):
def _GenerateAPIDict(self):
def make_list_for_content_scripts():
- content_script_apis = self._platform_bundle.GetAPIModels(
- 'extensions').GetContentScriptAPIs().Get()
- content_script_apis_list = [csa.__dict__ for api_name, csa
- in content_script_apis.iteritems()
- if self._platform_bundle.GetAPICategorizer(
- 'extensions').IsDocumented(api_name)]
+ def convert_to_list(content_script_apis):
+ content_script_apis_list = [csa.__dict__ for api_name, csa
+ in content_script_apis.iteritems()
+ if self._platform_bundle.GetAPICategorizer(
+ 'extensions').IsDocumented(api_name)]
+ content_script_apis_list.sort(key=itemgetter('name'))
+ for csa in content_script_apis_list:
+ restricted_nodes = csa['restrictedTo']
+ if restricted_nodes:
+ restricted_nodes.sort(key=itemgetter('node'))
+ MarkFirstAndLast(restricted_nodes)
+ else:
+ del csa['restrictedTo']
+ return content_script_apis_list
- content_script_apis_list.sort(key=itemgetter('name'))
- for csa in content_script_apis_list:
- restricted_nodes = csa['restrictedTo']
- if restricted_nodes:
- restricted_nodes.sort(key=itemgetter('node'))
- MarkFirstAndLast(restricted_nodes)
- else:
- del csa['restrictedTo']
- return content_script_apis_list
+ return (self._platform_bundle.GetAPIModels('extensions')
+ .GetContentScriptAPIs()
+ .Then(convert_to_list))
def make_dict_for_platform(platform):
platform_dict = {
@@ -95,20 +97,24 @@ class APIListDataSource(DataSource):
platform_dict[key] = apis
return platform_dict
- api_dict = dict((platform, make_dict_for_platform(platform))
- for platform in GetPlatforms())
- api_dict['contentScripts'] = make_list_for_content_scripts()
- return api_dict
+
+ def make_api_dict(content_script_apis):
+ api_dict = dict((platform, make_dict_for_platform(platform))
+ for platform in GetPlatforms())
+ api_dict['contentScripts'] = content_script_apis
+ return api_dict
+
+ return make_list_for_content_scripts().Then(make_api_dict)
def _GetCachedAPIData(self):
- data_future = self._object_store.Get('api_data')
- def resolve():
- data = data_future.Get()
+ def persist_and_return(data):
+ self._object_store.Set('api_data', data)
+ return data
+ def return_or_generate(data):
if data is None:
- data = self._GenerateAPIDict()
- self._object_store.Set('api_data', data)
+ return self._GenerateAPIDict().Then(persist_and_return)
return data
- return Future(callback=resolve)
+ return self._object_store.Get('api_data').Then(return_or_generate)
def get(self, key):
return self._GetCachedAPIData().Get().get(key)
« no previous file with comments | « no previous file | chrome/common/extensions/docs/server2/app.yaml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698