cygprofile: increase timeouts to allow showing web contents
[chromium-blink-merge.git] / chrome / common / extensions / docs / server2 / samples_data_source.py
bloba25986124fafe4dd05cdf373e3e21b55e9b3663f
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import logging
6 import traceback
8 from data_source import DataSource
9 from extensions_paths import EXAMPLES
10 from future import All, Future
11 from jsc_view import CreateSamplesView
12 from platform_util import GetPlatforms
15 class SamplesDataSource(DataSource):
16 '''Constructs a list of samples and their respective files and api calls.
17 '''
18 def __init__(self, server_instance, request):
19 self._platform_bundle = server_instance.platform_bundle
20 self._request = request
22 def _GetImpl(self, platform):
23 cache = self._platform_bundle.GetSamplesModel(platform).GetCache()
24 create_view = lambda samp_list: CreateSamplesView(samp_list, self._request)
25 return cache.GetFromFileListing('' if platform == 'apps'
26 else EXAMPLES).Then(create_view)
28 def get(self, platform):
29 return self._GetImpl(platform).Get()
31 def Refresh(self):
32 return All(self._GetImpl(platform) for platform in GetPlatforms())