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

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

Issue 10834329: Extension docs server: many changes to bring down the latency of the server, (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 | « chrome/common/extensions/docs/server2/subversion_file_system.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/common/extensions/docs/server2/template_data_source.py
diff --git a/chrome/common/extensions/docs/server2/template_data_source.py b/chrome/common/extensions/docs/server2/template_data_source.py
index 306034b2f25bdfb980f3fc08662f6c26629c488a..7f6bd8061c903d697011d5965412e0c30e06ce24 100644
--- a/chrome/common/extensions/docs/server2/template_data_source.py
+++ b/chrome/common/extensions/docs/server2/template_data_source.py
@@ -3,9 +3,11 @@
# found in the LICENSE file.
import logging
+import time
from docs_server_utils import FormatKey
from file_system import FileNotFoundError
+from request_scoped_fs_cache import RequestScopedFsCache
from third_party.handlebar import Handlebar
EXTENSIONS_URL = '/chrome/extensions'
@@ -41,16 +43,16 @@ class TemplateDataSource(object):
def __init__(self,
channel_name,
api_data_source_factory,
- api_list_data_source,
- intro_data_source,
+ api_list_data_source_factory,
+ intro_data_source_factory,
samples_data_source_factory,
cache_builder,
public_template_path,
private_template_path):
self._branch_info = _MakeChannelDict(channel_name)
self._api_data_source_factory = api_data_source_factory
- self._api_list_data_source = api_list_data_source
- self._intro_data_source = intro_data_source
+ self._api_list_data_source_factory = api_list_data_source_factory
+ self._intro_data_source_factory = intro_data_source_factory
self._samples_data_source_factory = samples_data_source_factory
self._cache = cache_builder.build(Handlebar)
self._public_template_path = public_template_path
@@ -64,10 +66,10 @@ class TemplateDataSource(object):
return TemplateDataSource(
self._branch_info,
self._api_data_source_factory.Create(request),
- self._api_list_data_source,
- self._intro_data_source,
+ self._api_list_data_source_factory.Create(),
+ self._intro_data_source_factory.Create(),
self._samples_data_source_factory.Create(request),
- self._cache,
+ self._cache.ScopeToRequest(),
self._public_template_path,
self._private_template_path,
self._static_resources,
@@ -96,6 +98,13 @@ class TemplateDataSource(object):
self._request = request
def Render(self, template_name):
+ start_time = time.time()
+ try:
+ return self._DoRender(template_name)
+ finally:
+ logging.info("RENDER: %sms", (time.time() - start_time) * 1000)
+
+ def _DoRender(self, template_name):
"""This method will render a template named |template_name|, fetching all
the partial templates needed from |self._cache|. Partials are retrieved
from the TemplateDataSource with the |get| method.
@@ -122,6 +131,13 @@ class TemplateDataSource(object):
return self.get(key)
def get(self, key):
+ start_time = time.time()
+ try:
+ return self._do_get(key)
+ finally:
+ logging.info("TemplateDataSource: %sms", (time.time() - start_time) * 1000)
+
+ def _do_get(self, key):
return self.GetTemplate(self._private_template_path, key)
def GetTemplate(self, base_path, template_name):
« no previous file with comments | « chrome/common/extensions/docs/server2/subversion_file_system.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698