Commit 80183198 authored by kalman@chromium.org's avatar kalman@chromium.org

Revert "Doc server: support interfaces in src/extensions"

The docserver is timing out and it has something to do with this. Note
that as part of the rollback I need to make sure that app.yaml and
cron.yaml still increase their versions.

BUG=350640
TBR=rockot@chromium.org

Review URL: https://codereview.chromium.org/191853002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@255741 0039d316-1c4b-4281-b951-d872f2087c98
parent 4845a9a2
......@@ -6,7 +6,7 @@ import unittest
from api_categorizer import APICategorizer
from compiled_file_system import CompiledFileSystem
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from object_store_creator import ObjectStoreCreator
from test_file_system import TestFileSystem
......@@ -58,7 +58,7 @@ _TEST_DATA = {
class APICategorizerTest(unittest.TestCase):
def setUp(self):
self._api_categorizer = APICategorizer(
TestFileSystem(_TEST_DATA, relative_to=CHROME_EXTENSIONS),
TestFileSystem(_TEST_DATA, relative_to=EXTENSIONS),
CompiledFileSystem.Factory(ObjectStoreCreator.ForTest()))
def testGetAPICategory(self):
......
......@@ -9,7 +9,7 @@ import posixpath
from environment import IsPreviewServer
from extensions_paths import (
API_FEATURES, JSON_TEMPLATES, PRIVATE_TEMPLATES)
API, API_FEATURES, JSON_TEMPLATES, PRIVATE_TEMPLATES)
import third_party.json_schema_compiler.json_parse as json_parse
import third_party.json_schema_compiler.model as model
from environment import IsPreviewServer
......
......@@ -12,7 +12,7 @@ from api_data_source import (_JSCModel,
_FormatValue,
_GetEventByNameFromEvents)
from branch_utility import ChannelInfo
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from file_system import FileNotFoundError
from future import Future
from object_store_creator import ObjectStoreCreator
......@@ -96,7 +96,7 @@ class APIDataSourceTest(unittest.TestCase):
self._base_path = Server2Path('test_data', 'test_json')
server_instance = ServerInstance.ForTest(
TestFileSystem(CANNED_TRUNK_FS_DATA, relative_to=CHROME_EXTENSIONS))
TestFileSystem(CANNED_TRUNK_FS_DATA, relative_to=EXTENSIONS))
self._json_cache = server_instance.compiled_fs_factory.ForJson(
server_instance.host_file_system_provider.GetTrunk())
self._api_models = server_instance.api_models
......
......@@ -7,7 +7,7 @@ import unittest
import json
from api_list_data_source import APIListDataSource
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from server_instance import ServerInstance
from test_file_system import TestFileSystem
......@@ -130,7 +130,7 @@ _TEST_DATA = _ToTestApiSchema(_TEST_API_SCHEMA, {
class APIListDataSourceTest(unittest.TestCase):
def setUp(self):
server_instance = ServerInstance.ForTest(
TestFileSystem(_TEST_DATA, relative_to=CHROME_EXTENSIONS))
TestFileSystem(_TEST_DATA, relative_to=EXTENSIONS))
self._factory = APIListDataSource.Factory(
server_instance.compiled_fs_factory,
server_instance.host_file_system_provider.GetTrunk(),
......
......@@ -6,7 +6,7 @@ import os
import posixpath
from compiled_file_system import SingleFile, Unicode
from extensions_paths import API, CHROME_API
from extensions_paths import API
from file_system import FileNotFoundError
from future import Gettable, Future
from schema_util import ProcessSchema
......@@ -29,7 +29,6 @@ class APIModels(object):
self._features_bundle = features_bundle
self._model_cache = compiled_fs_factory.Create(
file_system, _CreateAPIModel, APIModels)
self._file_system = file_system
def GetNames(self):
# API names appear alongside some of their methods/events/etc in the
......@@ -46,14 +45,11 @@ class APIModels(object):
# Callers sometimes specify a filename which includes .json or .idl - if
# so, believe them. They may even include the 'api/' prefix.
if os.path.splitext(api_name)[1] in ('.json', '.idl'):
if not api_name.startswith((API, CHROME_API)):
api_path = posixpath.join(API, api_name)
if self._file_system.Exists(api_path).Get():
return self._model_cache.GetFromFile(api_path)
api_name = posixpath.join(CHROME_API, api_name)
if not api_name.startswith(API):
api_name = posixpath.join(API, api_name)
return self._model_cache.GetFromFile(api_name)
assert not api_name.startswith((API, CHROME_API))
assert not api_name.startswith(API)
# API names are given as declarativeContent and app.window but file names
# will be declarative_content and app_window.
......@@ -67,15 +63,14 @@ class APIModels(object):
basename.replace('devtools_' , '')))
futures = [self._model_cache.GetFromFile(
posixpath.join(api_path, '%s.%s' % (file_name, ext)))
for ext in ('json', 'idl')
for api_path in (API, CHROME_API)]
posixpath.join(API, '%s.%s' % (file_name, ext)))
for ext in ('json', 'idl')]
def resolve():
for future in futures:
try:
return future.Get()
except FileNotFoundError: pass
# Propagate the first FileNotFoundError if no files were found.
# Propagate the first FileNotFoundError if neither were found.
futures[0].Get()
return Future(delegate=Gettable(resolve))
......
......@@ -8,7 +8,7 @@ import unittest
from api_models import APIModels
from compiled_file_system import CompiledFileSystem
from extensions_paths import CHROME_API, CHROME_EXTENSIONS
from extensions_paths import API, EXTENSIONS
from features_bundle import FeaturesBundle
from file_system import FileNotFoundError
from mock_file_system import MockFileSystem
......@@ -21,7 +21,7 @@ _TEST_DATA = {
'api': {
'devtools': {
'inspected_window.json': ReadFile(
CHROME_API, 'devtools', 'inspected_window.json'),
API, 'devtools', 'inspected_window.json'),
},
'_api_features.json': json.dumps({
'alarms': {},
......@@ -36,12 +36,12 @@ _TEST_DATA = {
}),
'_manifest_features.json': '{}',
'_permission_features.json': '{}',
'alarms.idl': ReadFile(CHROME_API, 'alarms.idl'),
'alarms.idl': ReadFile(API, 'alarms.idl'),
'declarative_web_request.json': ReadFile(
CHROME_API, 'declarative_web_request.json'),
API, 'declarative_web_request.json'),
'experimental_accessibility.json': ReadFile(
CHROME_API, 'experimental_accessibility.json'),
'page_action.json': ReadFile(CHROME_API, 'page_action.json'),
API, 'experimental_accessibility.json'),
'page_action.json': ReadFile(API, 'page_action.json'),
},
'docs': {
'templates': {
......@@ -59,7 +59,7 @@ class APIModelsTest(unittest.TestCase):
object_store_creator = ObjectStoreCreator.ForTest()
compiled_fs_factory = CompiledFileSystem.Factory(object_store_creator)
self._mock_file_system = MockFileSystem(
TestFileSystem(_TEST_DATA, relative_to=CHROME_EXTENSIONS))
TestFileSystem(_TEST_DATA, relative_to=EXTENSIONS))
features_bundle = FeaturesBundle(
self._mock_file_system, compiled_fs_factory, object_store_creator)
self._api_models = APIModels(
......@@ -83,29 +83,25 @@ class APIModelsTest(unittest.TestCase):
self.assertEqual('devtools.inspectedWindow',
get_model_name('devtools/inspected_window.json'))
self.assertEqual('devtools.inspectedWindow',
get_model_name(CHROME_API +
'devtools/inspected_window.json'))
get_model_name(API + 'devtools/inspected_window.json'))
self.assertEqual('alarms', get_model_name('alarms'))
self.assertEqual('alarms', get_model_name('alarms.idl'))
self.assertEqual('alarms', get_model_name(CHROME_API + 'alarms.idl'))
self.assertEqual('alarms', get_model_name(API + 'alarms.idl'))
self.assertEqual('declarativeWebRequest',
get_model_name('declarativeWebRequest'))
self.assertEqual('declarativeWebRequest',
get_model_name('declarative_web_request.json'))
self.assertEqual('declarativeWebRequest',
get_model_name(CHROME_API +
'declarative_web_request.json'))
get_model_name(API + 'declarative_web_request.json'))
self.assertEqual('experimental.accessibility',
get_model_name('experimental.accessibility'))
self.assertEqual('experimental.accessibility',
get_model_name('experimental_accessibility.json'))
self.assertEqual('experimental.accessibility',
get_model_name(CHROME_API +
'experimental_accessibility.json'))
get_model_name(API + 'experimental_accessibility.json'))
self.assertEqual('pageAction', get_model_name('pageAction'))
self.assertEqual('pageAction', get_model_name('page_action.json'))
self.assertEqual('pageAction', get_model_name(CHROME_API +
'page_action.json'))
self.assertEqual('pageAction', get_model_name(API + 'page_action.json'))
def testGetNonexistentModel(self):
self.assertRaises(FileNotFoundError,
......@@ -113,26 +109,21 @@ class APIModelsTest(unittest.TestCase):
self.assertRaises(FileNotFoundError,
self._api_models.GetModel('notfound.json').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel(CHROME_API +
'notfound.json').Get)
self._api_models.GetModel(API + 'notfound.json').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel(CHROME_API +
'alarms.json').Get)
self._api_models.GetModel(API + 'alarms.json').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel('storage').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel(CHROME_API +
'storage.json').Get)
self._api_models.GetModel(API + 'storage.json').Get)
self.assertRaises(FileNotFoundError,
self._api_models.GetModel(CHROME_API +
'storage.idl').Get)
self._api_models.GetModel(API + 'storage.idl').Get)
def testSingleFile(self):
# 4 stats (1 for JSON and 1 for IDL, in both possible API path),
# 1 read (for IDL file which existed).
# 2 stats (1 for JSON and 1 for IDL), 1 read (for IDL file which existed).
future = self._api_models.GetModel('alarms')
self.assertTrue(*self._mock_file_system.CheckAndReset(
read_count=1, stat_count=4))
read_count=1, stat_count=2))
# 1 read-resolve (for the IDL file).
#
......@@ -143,10 +134,9 @@ class APIModelsTest(unittest.TestCase):
self.assertTrue(*self._mock_file_system.CheckAndReset(
read_resolve_count=1))
# 4 stats (1 for JSON and 1 for IDL, in both possible API paths)
# no reads (still cached).
# 2 stats (1 for JSON and 1 for IDL), no reads (still cached).
future = self._api_models.GetModel('alarms')
self.assertTrue(*self._mock_file_system.CheckAndReset(stat_count=4))
self.assertTrue(*self._mock_file_system.CheckAndReset(stat_count=2))
future.Get()
self.assertTrue(*self._mock_file_system.CheckAndReset())
......
application: chrome-apps-doc
version: 3-13-2
version: 3-13-3
runtime: python27
api_version: 1
threadsafe: false
......
......@@ -7,9 +7,7 @@ import posixpath
from api_schema_graph import APISchemaGraph
from branch_utility import BranchUtility
from extensions_paths import (
API, CHROME_API, JSON_TEMPLATES, API_FEATURES, MANIFEST_FEATURES,
PERMISSION_FEATURES)
from extensions_paths import API, JSON_TEMPLATES
from third_party.json_schema_compiler.model import UnixName
......@@ -31,7 +29,7 @@ def _GetChannelFromFeatures(api_name, json_fs, filename):
given |json_fs|. Returns None if channel information for the API cannot be
located.
'''
feature = json_fs.GetFromFile(filename).Get().get(api_name)
feature = json_fs.GetFromFile(API + filename).Get().get(api_name)
if feature is None:
return None
if isinstance(feature, Mapping):
......@@ -43,17 +41,17 @@ def _GetChannelFromFeatures(api_name, json_fs, filename):
def _GetChannelFromApiFeatures(api_name, json_fs):
return _GetChannelFromFeatures(api_name, json_fs, API_FEATURES)
return _GetChannelFromFeatures(api_name, json_fs, '_api_features.json')
def _GetChannelFromManifestFeatures(api_name, json_fs):
# _manifest_features.json uses unix_style API names.
api_name = UnixName(api_name)
return _GetChannelFromFeatures(api_name, json_fs, MANIFEST_FEATURES)
return _GetChannelFromFeatures(api_name, json_fs, '_manifest_features.json')
def _GetChannelFromPermissionFeatures(api_name, json_fs):
return _GetChannelFromFeatures(api_name, json_fs, PERMISSION_FEATURES)
return _GetChannelFromFeatures(api_name, json_fs, '_permission_features.json')
class AvailabilityFinder(object):
......@@ -97,28 +95,24 @@ class AvailabilityFinder(object):
single _EXTENSION_API file which all APIs share in older versions of Chrome,
in which case it is unknown whether the API actually exists there.
'''
def find_schema_under_path(api_name, path):
# |file_system| will cache the results from the ReadSingle() call.
if not file_system.Exists(path).Get():
return None
filenames = file_system.ReadSingle(path).Get()
for ext in ('json', 'idl'):
filename = '%s.%s' % (api_name, ext)
if filename in filenames:
return path + filename
if _EXTENSION_API in filenames:
return path + _EXTENSION_API
# API schema data could not be found in any .json or .idl file.
return None
def under_api_path(path):
return API + path
if version == 'trunk' or version > _ORIGINAL_FEATURES_MIN_VERSION:
# API schema filenames switch format to unix_hacker_style.
api_name = UnixName(api_name)
filename = find_schema_under_path(api_name, API)
if filename is not None:
return filename
return find_schema_under_path(api_name, CHROME_API)
# |file_system| will cache the results from the ReadSingle() call.
filenames = file_system.ReadSingle(API).Get()
for ext in ('json', 'idl'):
filename = '%s.%s' % (api_name, ext)
if filename in filenames:
return under_api_path(filename)
if _EXTENSION_API in filenames:
return under_api_path(_EXTENSION_API)
# API schema data could not be found in any .json or .idl file.
return None
def _GetApiSchema(self, api_name, file_system, version):
'''Searches |file_system| for |api_name|'s API schema data, and processes
......
......@@ -8,7 +8,7 @@ import unittest
from compiled_file_system import CompiledFileSystem
from content_providers import ContentProviders
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from gcs_file_system_provider import CloudStorageFileSystemProvider
from object_store_creator import ObjectStoreCreator
from test_file_system import TestFileSystem
......@@ -102,8 +102,7 @@ class _MockGithubFileSystemProvider(object):
class ContentProvidersTest(unittest.TestCase):
def setUp(self):
object_store_creator = ObjectStoreCreator.ForTest()
test_file_system = TestFileSystem(_FILE_SYSTEM_DATA,
relative_to=CHROME_EXTENSIONS)
test_file_system = TestFileSystem(_FILE_SYSTEM_DATA, relative_to=EXTENSIONS)
self._github_fs_provider = _MockGithubFileSystemProvider(test_file_system)
object_store_creator = ObjectStoreCreator.ForTest()
# TODO(mangini): create tests for GCS
......
......@@ -2,4 +2,4 @@ cron:
- description: Repopulates all cached data.
url: /_cron
schedule: every 5 minutes
target: 3-13-2
target: 3-13-3
......@@ -11,7 +11,7 @@ from content_providers import IgnoreMissingContentProviders
from cron_servlet import CronServlet
from empty_dir_file_system import EmptyDirFileSystem
from extensions_paths import (
APP_YAML, CONTENT_PROVIDERS, CHROME_EXTENSIONS, PUBLIC_TEMPLATES, SERVER2,
APP_YAML, CONTENT_PROVIDERS, EXTENSIONS, PUBLIC_TEMPLATES, SERVER2,
STATIC_DOCS)
from gcs_file_system_provider import CloudStorageFileSystemProvider
from github_file_system_provider import GithubFileSystemProvider
......@@ -155,7 +155,7 @@ class CronServletTest(unittest.TestCase):
to it.
'''
mock_file_system = MockFileSystem(
TestFileSystem(test_data, relative_to=CHROME_EXTENSIONS))
TestFileSystem(test_data, relative_to=EXTENSIONS))
updates_for_revision = (
updates if revision is None else updates[:int(revision)])
for update in updates_for_revision:
......
......@@ -7,17 +7,14 @@ from posixpath import join
# Extensions-related paths within the Chromium repository.
EXTENSIONS = 'extensions/common/'
CHROME_EXTENSIONS = 'chrome/common/extensions/'
EXTENSIONS = 'chrome/common/extensions/'
API = join(EXTENSIONS, 'api/')
CHROME_API = join(CHROME_EXTENSIONS, 'api/')
DOCS = join(EXTENSIONS, 'docs/')
DOCS = join(CHROME_EXTENSIONS, 'docs/')
API_FEATURES = join(CHROME_API, '_api_features.json')
MANIFEST_FEATURES = join(CHROME_API, '_manifest_features.json')
PERMISSION_FEATURES = join(CHROME_API, '_permission_features.json')
API_FEATURES = join(API, '_api_features.json')
MANIFEST_FEATURES = join(API, '_manifest_features.json')
PERMISSION_FEATURES = join(API, '_permission_features.json')
EXAMPLES = join(DOCS, 'examples/')
SERVER2 = join(DOCS, 'server2/')
......
......@@ -6,7 +6,7 @@
import json
import unittest
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from server_instance import ServerInstance
from test_file_system import TestFileSystem
......@@ -139,7 +139,7 @@ _TEST_FILESYSTEM = {
class FeaturesBundleTest(unittest.TestCase):
def setUp(self):
self._server = ServerInstance.ForTest(
TestFileSystem(_TEST_FILESYSTEM, relative_to=CHROME_EXTENSIONS))
TestFileSystem(_TEST_FILESYSTEM, relative_to=EXTENSIONS))
def testManifestFeatures(self):
expected_features = {
......
......@@ -6,7 +6,7 @@
from copy import deepcopy
import unittest
from extensions_paths import CHROME_API
from extensions_paths import API
from file_system import FileNotFoundError
from host_file_system_provider import HostFileSystemProvider
from object_store_creator import ObjectStoreCreator
......@@ -15,7 +15,7 @@ from test_file_system import TestFileSystem
class HostFileSystemProviderTest(unittest.TestCase):
def setUp(self):
self._idle_path = CHROME_API + 'idle.json'
self._idle_path = API + 'idle.json'
self._canned_data = deepcopy(CANNED_API_FILE_SYSTEM_DATA)
def _constructor_for_test(self, branch, **optargs):
......
......@@ -18,8 +18,7 @@ import unittest
from branch_utility import BranchUtility
from chroot_file_system import ChrootFileSystem
from extensions_paths import (
CONTENT_PROVIDERS, CHROME_EXTENSIONS, PUBLIC_TEMPLATES)
from extensions_paths import CONTENT_PROVIDERS, EXTENSIONS, PUBLIC_TEMPLATES
from fake_fetchers import ConfigureFakeFetchers
from special_paths import SITE_VERIFICATION_FILE
from handler import Handler
......@@ -112,7 +111,7 @@ class IntegrationTest(unittest.TestCase):
#start_time = time.time()
#link_error_detector = LinkErrorDetector(
# # TODO(kalman): Use of ChrootFileSystem here indicates a hack. Fix.
# ChrootFileSystem(LocalFileSystem.Create(), CHROME_EXTENSIONS),
# ChrootFileSystem(LocalFileSystem.Create(), EXTENSIONS),
# lambda path: Handler(Request.ForTest(path)).Get(),
# 'templates/public',
# ('extensions/index.html', 'apps/about_apps.html'))
......
......@@ -7,7 +7,7 @@ import json
from operator import itemgetter
import unittest
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from permissions_data_source import PermissionsDataSource
from server_instance import ServerInstance
from third_party.handlebar import Handlebar
......@@ -139,7 +139,7 @@ class PermissionsDataSourceTest(unittest.TestCase):
},
}
}
}, relative_to=CHROME_EXTENSIONS)
}, relative_to=EXTENSIONS)
permissions_data_source = PermissionsDataSource(
ServerInstance.ForTest(test_file_system), None)
......
......@@ -9,8 +9,7 @@ import sys
import unittest
from appengine_url_fetcher import AppEngineUrlFetcher
from extensions_paths import (
ARTICLES_TEMPLATES, CHROME_EXTENSIONS, DOCS, JSON_TEMPLATES,
PUBLIC_TEMPLATES)
ARTICLES_TEMPLATES, EXTENSIONS, DOCS, JSON_TEMPLATES, PUBLIC_TEMPLATES)
from fake_fetchers import ConfigureFakeFetchers
from file_system import FileNotFoundError
from rietveld_patcher import RietveldPatcher
......@@ -53,10 +52,9 @@ class RietveldPatcherTest(unittest.TestCase):
['%sextensions/runtime.html' % PUBLIC_TEMPLATES])
self.assertEqual(
sorted(modified),
_PrefixWith(CHROME_EXTENSIONS,
['api/test.json',
'docs/templates/json/extensions_sidenav.json',
'manifest.h']))
_PrefixWith(EXTENSIONS, ['api/test.json',
'docs/templates/json/extensions_sidenav.json',
'manifest.h']))
def testApply(self):
article_path = '%stest_foo.html' % ARTICLES_TEMPLATES
......
......@@ -4,7 +4,7 @@
import json
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from third_party.json_schema_compiler.json_parse import OrderedDict
from test_file_system import MoveAllTo, MoveTo
......@@ -46,7 +46,7 @@ CANNED_BRANCHES = OrderedDict([
])
CANNED_TEST_FILE_SYSTEM_DATA = MoveTo(CHROME_EXTENSIONS, {
CANNED_TEST_FILE_SYSTEM_DATA = MoveTo(EXTENSIONS, {
'api': {
'_api_features.json': json.dumps({
'ref_test': { 'dependencies': ['permission:ref_test'] },
......@@ -133,7 +133,7 @@ _TEST_WHATS_NEW_JSON = {
}
CANNED_API_FILE_SYSTEM_DATA = MoveAllTo(CHROME_EXTENSIONS, {
CANNED_API_FILE_SYSTEM_DATA = MoveAllTo(EXTENSIONS, {
'trunk': {
'api': {
'_api_features.json': json.dumps({
......
......@@ -4,11 +4,11 @@
import json
from extensions_paths import CHROME_EXTENSIONS
from extensions_paths import EXTENSIONS
from test_file_system import MoveAllTo
TABS_SCHEMA_BRANCHES = MoveAllTo(CHROME_EXTENSIONS, {
TABS_SCHEMA_BRANCHES = MoveAllTo(EXTENSIONS, {
'trunk': {
'docs': {
'templates': {
......
......@@ -8,6 +8,7 @@ import os
import unittest
import sys
from extensions_paths import EXTENSIONS
from fake_host_file_system_provider import FakeHostFileSystemProvider
from server_instance import ServerInstance
from test_data.canned_data import CANNED_API_FILE_SYSTEM_DATA
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment