Chromium Code Reviews| Index: chrome/renderer/resources/extensions/utils.js |
| diff --git a/chrome/renderer/resources/extensions/utils.js b/chrome/renderer/resources/extensions/utils.js |
| index 50134eadb569f2b40a5ebb3c6f033eae1b1efa28..a27d3c47cf0e8ea8e187b004bca6a90e6398506d 100644 |
| --- a/chrome/renderer/resources/extensions/utils.js |
| +++ b/chrome/renderer/resources/extensions/utils.js |
| @@ -3,6 +3,8 @@ |
| // found in the LICENSE file. |
| var chrome = requireNative('chrome').GetChrome(); |
| +var schemaRegistry = requireNative('schema_registry'); |
| +var CHECK = requireNative('logging').CHECK; |
| function forEach(obj, f, self) { |
| // For arrays, make sure the indices are numbers not strings - and in that |
| @@ -37,16 +39,23 @@ function lookup(array_of_dictionaries, field, value) { |
| } |
| } |
| -// Specify |currentApi| if this should return an API for $refs in the current |
| -// namespace. |
| -function loadRefDependency(ref, currentApi) { |
| - var parts = ref.split("."); |
| - if (parts.length > 1) |
| - return chrome[parts.slice(0, parts.length - 1).join(".")]; |
| - else |
| - return currentApi; |
| +function loadTypeSchema(typeName, defaultSchema) { |
| + var parts = typeName.split('.'); |
| + if (parts.length == 1) { |
| + CHECK(defaultSchema, 'Trying to reference "' + typeName + |
| + '" with no default schema.'); |
|
not at google - send to devlin
2013/03/21 01:36:55
with neither namespace nor default schema
cduvall
2013/03/21 17:16:07
Done.
|
| + var types = defaultSchema.types; |
| + } else { |
| + var schemaName = parts.slice(0, parts.length - 1).join('.') |
| + var types = schemaRegistry.GetSchema(schemaName).types; |
| + } |
| + for (var i = 0; i < types.length; ++i) { |
| + if (types[i].id == typeName) |
| + return types[i]; |
| + } |
| + return undefined; |
| } |
| exports.forEach = forEach; |
| -exports.loadRefDependency = loadRefDependency; |
| +exports.loadTypeSchema = loadTypeSchema; |
| exports.lookup = lookup; |