Index: chrome/common/extensions/docs/server2/content_providers.py |
diff --git a/chrome/common/extensions/docs/server2/content_providers.py b/chrome/common/extensions/docs/server2/content_providers.py |
index d1d95f835139de9598ed3066ba27ebb7dca7a127..31be9b56cd5450b548ac7512d2ea964a86c2d8b5 100644 |
--- a/chrome/common/extensions/docs/server2/content_providers.py |
+++ b/chrome/common/extensions/docs/server2/content_providers.py |
@@ -40,10 +40,12 @@ class ContentProviders(object): |
''' |
def __init__(self, |
+ object_store_creator, |
compiled_fs_factory, |
host_file_system, |
github_file_system_provider, |
gcs_file_system_provider): |
+ self._object_store_creator = object_store_creator |
self._compiled_fs_factory = compiled_fs_factory |
self._host_file_system = host_file_system |
self._github_file_system_provider = github_file_system_provider |
@@ -82,15 +84,16 @@ class ContentProviders(object): |
@memoize |
def GetByServeFrom(self, path): |
- '''Gets a (content_provider, path_in_content_provider) tuple, where |
- content_provider is the ContentProvider with the longest "serveFrom" |
- property that is a subpath of |path|, and path_in_content_provider is the |
- remainder of |path|. |
+ '''Gets a (content_provider, serve_from, path_in_content_provider) tuple, |
+ where content_provider is the ContentProvider with the longest "serveFrom" |
+ property that is a subpath of |path|, serve_from is that property, and |
+ path_in_content_provider is the remainder of |path|. |
For example, if content provider A serves from "foo" and content provider B |
- serves from "foo/bar", GetByServeFrom("foo/bar/baz") will return (B, "baz"). |
+ serves from "foo/bar", GetByServeFrom("foo/bar/baz") will return (B, |
+ "foo/bar", "baz"). |
- Returns (None, |path|) if no ContentProvider serves from |path|. |
+ Returns (None, '', |path|) if no ContentProvider serves from |path|. |
''' |
serve_from_to_config = dict( |
(config['serveFrom'], (name, config)) |
@@ -101,13 +104,15 @@ class ContentProviders(object): |
if name_and_config is not None: |
return (self._CreateContentProvider(name_and_config[0], |
name_and_config[1]), |
+ '/'.join(path_parts[:i]), |
'/'.join(path_parts[i:])) |
- return None, path |
+ return None, '', path |
def _GetConfig(self): |
return self._cache.GetFromFile(CONTENT_PROVIDERS).Get() |
def _CreateContentProvider(self, name, config): |
+ default_extensions = config.get('defaultExtensions', ()) |
supports_templates = config.get('supportsTemplates', False) |
supports_zip = config.get('supportsZip', False) |
@@ -149,6 +154,8 @@ class ContentProviders(object): |
return ContentProvider(name, |
self._compiled_fs_factory, |
file_system, |
+ self._object_store_creator, |
+ default_extensions=default_extensions, |
supports_templates=supports_templates, |
supports_zip=supports_zip) |