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

Unified Diff: extensions/renderer/resources/json_schema.js

Issue 2953073004: [Extensions Bindings] Move loadTypeSchema from utils to json_schema (Closed)
Patch Set: remove unnecessary require Created 3 years, 6 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 | « extensions/renderer/resources/binding.js ('k') | extensions/renderer/resources/utils.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: extensions/renderer/resources/json_schema.js
diff --git a/extensions/renderer/resources/json_schema.js b/extensions/renderer/resources/json_schema.js
index ca351b4619a059ec4ae82d25e8433a444be63477..0e4db6863f0bce74d4192350bffac0d014ad3970 100644
--- a/extensions/renderer/resources/json_schema.js
+++ b/extensions/renderer/resources/json_schema.js
@@ -40,9 +40,30 @@
var utils = require('utils');
var loggingNative = requireNative('logging');
-var getObjectType = requireNative('schema_registry').GetObjectType;
+var schemaRegistry = requireNative('schema_registry');
var CHECK = loggingNative.CHECK;
var DCHECK = loggingNative.DCHECK;
+var WARNING = loggingNative.WARNING;
+
+function loadTypeSchema(typeName, defaultSchema) {
+ var parts = $String.split(typeName, '.');
+ if (parts.length == 1) {
+ if (defaultSchema == null) {
+ WARNING('Trying to reference "' + typeName + '" ' +
+ 'with neither namespace nor default schema.');
+ return null;
+ }
+ var types = defaultSchema.types;
+ } else {
+ var schemaName = $Array.join($Array.slice(parts, 0, parts.length - 1), '.');
+ var types = schemaRegistry.GetSchema(schemaName).types;
+ }
+ for (var i = 0; i < types.length; ++i) {
+ if (types[i].id == typeName)
+ return types[i];
+ }
+ return null;
+}
function isInstanceOfClass(instance, className) {
while ((instance = instance.__proto__)) {
@@ -139,7 +160,7 @@ utils.defineProperty(JSONSchemaValidator, 'getType', function(value) {
// C++.
var s = typeof value;
if (s === 'object')
- return value === null ? 'null' : getObjectType(value);
+ return value === null ? 'null' : schemaRegistry.GetObjectType(value);
if (s === 'number')
return value % 1 === 0 ? 'integer' : 'number';
return s;
@@ -190,7 +211,7 @@ JSONSchemaValidator.prototype.getAllTypesForSchema = function(schema) {
JSONSchemaValidator.prototype.getOrAddType = function(typeName) {
if (!this.types[typeName])
- this.types[typeName] = utils.loadTypeSchema(typeName);
+ this.types[typeName] = loadTypeSchema(typeName);
return this.types[typeName];
};
@@ -525,3 +546,4 @@ JSONSchemaValidator.prototype.resetErrors = function() {
};
exports.$set('JSONSchemaValidator', JSONSchemaValidator);
+exports.$set('loadTypeSchema', loadTypeSchema);
« no previous file with comments | « extensions/renderer/resources/binding.js ('k') | extensions/renderer/resources/utils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698