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

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

Issue 656673003: Docserver: Cache the samples. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 6 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
« 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_data_source.py
diff --git a/chrome/common/extensions/docs/server2/api_data_source.py b/chrome/common/extensions/docs/server2/api_data_source.py
index d3806e58cb6a5110fcc626707e6ea89010b6dfd5..c28dbe815c545efe4744dbf2bd022ffe64ba90d3 100644
--- a/chrome/common/extensions/docs/server2/api_data_source.py
+++ b/chrome/common/extensions/docs/server2/api_data_source.py
@@ -9,9 +9,8 @@ from docs_server_utils import StringIdentity
from environment import IsPreviewServer
from file_system import FileNotFoundError
from future import Future, All
-from jsc_view import JSCView, GetEventByNameFromEvents
+from jsc_view import CreateJSCView, GetEventByNameFromEvents
from platform_util import GetPlatforms
-from samples_data_source import CreateSamplesView
class APIDataSource(DataSource):
@@ -51,10 +50,18 @@ class APIDataSource(DataSource):
jsc_view_future = self._view_cache.Get(object_store_key)
model_future = api_models.GetModel(api_name)
content_script_apis_future = api_models.GetContentScriptAPIs()
+
+ # Parsing samples on the preview server takes forever, so disable it.
+ if IsPreviewServer():
+ samples_futures = Future(value=[])
+ else:
+ samples_future = (self._platform_bundle.GetSamplesModel(platform)
+ .FilterSamples(api_name))
+
def resolve():
jsc_view = jsc_view_future.Get()
if jsc_view is None:
- jsc_view = JSCView(
+ jsc_view = CreateJSCView(
content_script_apis_future.Get(),
model_future.Get(),
self._platform_bundle.GetAvailabilityFinder(platform),
@@ -62,33 +69,19 @@ class APIDataSource(DataSource):
self._template_cache,
self._platform_bundle.GetFeaturesBundle(platform),
self._LoadEventByName(platform),
- platform).ToDict()
+ platform,
+ samples_future.Get(),
+ self._request)
self._view_cache.Set(object_store_key, jsc_view)
return jsc_view
return Future(callback=resolve)
- def _GetImpl(self, platform, api_name):
- jsc_view_future = self._GetSchemaView(platform, api_name)
- def resolve():
- jsc_view = jsc_view_future.Get()
- # Parsing samples on the preview server takes seconds and doesn't add
- # anything. Don't do it.
- if not IsPreviewServer():
- samples_model = self._platform_bundle.GetSamplesModel(platform)
- # Creates an object that lazily gets samples.
- jsc_view['samples'] = type('getter', (object,), {
- 'get': lambda _, platform: CreateSamplesView(
- samples_model.FilterSamples(jsc_view['name']), self._request)
- })()
- return jsc_view
- return Future(callback=resolve)
-
def get(self, platform):
'''Return a getter object so that templates can perform lookups such
as apis.extensions.runtime.
'''
getter = lambda: 0
- getter.get = lambda api_name: self._GetImpl(platform, api_name).Get()
+ getter.get = lambda api_name: self._GetSchemaView(platform, api_name).Get()
return getter
def GetRefreshPaths(self):
@@ -102,5 +95,5 @@ class APIDataSource(DataSource):
def Refresh(self, path):
platform, api = path.split('/')
logging.info('Refreshing %s/%s' % (platform, api))
- future = self._GetImpl(platform, api)
+ future = self._GetSchemaView(platform, api)
return All([future], except_pass=FileNotFoundError)
« 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