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

Side by Side Diff: chrome/renderer/resources/extensions/json_schema.js

Issue 11571014: Lazy load chrome.* APIs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: android compilation Created 7 years, 9 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // ----------------------------------------------------------------------------- 5 // -----------------------------------------------------------------------------
6 // NOTE: If you change this file you need to touch renderer_resources.grd to 6 // NOTE: If you change this file you need to touch renderer_resources.grd to
7 // have your change take effect. 7 // have your change take effect.
8 // ----------------------------------------------------------------------------- 8 // -----------------------------------------------------------------------------
9 9
10 //============================================================================== 10 //==============================================================================
(...skipping 20 matching lines...) Expand all
31 // There are also these departures from the JSON Schema proposal: 31 // There are also these departures from the JSON Schema proposal:
32 // - function and undefined types are supported 32 // - function and undefined types are supported
33 // - null counts as 'unspecified' for optional values 33 // - null counts as 'unspecified' for optional values
34 // - added the 'choices' property, to allow specifying a list of possible types 34 // - added the 'choices' property, to allow specifying a list of possible types
35 // for a value 35 // for a value
36 // - by default an "object" typed schema does not allow additional properties. 36 // - by default an "object" typed schema does not allow additional properties.
37 // if present, "additionalProperties" is to be a schema against which all 37 // if present, "additionalProperties" is to be a schema against which all
38 // additional properties will be validated. 38 // additional properties will be validated.
39 //============================================================================== 39 //==============================================================================
40 40
41 // TODO(cduvall): Make this file not depend on chromeHidden.
41 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); 42 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
43 var loadRefDependency = require('utils').loadRefDependency;
42 44
43 function isInstanceOfClass(instance, className) { 45 function isInstanceOfClass(instance, className) {
44 if (!instance) 46 if (!instance)
45 return false; 47 return false;
46 48
47 if (Object.prototype.toString.call(instance) == "[object " + className + "]") 49 if (Object.prototype.toString.call(instance) == "[object " + className + "]")
48 return true; 50 return true;
49 51
50 return isInstanceOfClass(Object.getPrototypeOf(instance), className); 52 return isInstanceOfClass(Object.getPrototypeOf(instance), className);
51 } 53 }
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 this.types[schema.id] = schema; 235 this.types[schema.id] = schema;
234 236
235 // If the schema has an extends property, the instance must validate against 237 // If the schema has an extends property, the instance must validate against
236 // that schema too. 238 // that schema too.
237 if (schema.extends) 239 if (schema.extends)
238 this.validate(instance, schema.extends, path); 240 this.validate(instance, schema.extends, path);
239 241
240 // If the schema has a $ref property, the instance must validate against 242 // If the schema has a $ref property, the instance must validate against
241 // that schema too. It must be present in this.types to be referenced. 243 // that schema too. It must be present in this.types to be referenced.
242 if (schema["$ref"]) { 244 if (schema["$ref"]) {
245 loadRefDependency(schema["$ref"]);
243 if (!this.types[schema["$ref"]]) 246 if (!this.types[schema["$ref"]])
244 this.addError(path, "unknownSchemaReference", [ schema["$ref"] ]); 247 this.addError(path, "unknownSchemaReference", [ schema["$ref"] ]);
245 else 248 else
246 this.validate(instance, this.types[schema["$ref"]], path) 249 this.validate(instance, this.types[schema["$ref"]], path)
247 } 250 }
248 251
249 // If the schema has a choices property, the instance must validate against at 252 // If the schema has a choices property, the instance must validate against at
250 // least one of the items in that array. 253 // least one of the items in that array.
251 if (schema.choices) { 254 if (schema.choices) {
252 this.validateChoices(instance, schema, path); 255 this.validateChoices(instance, schema, path);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
501 message: chromeHidden.JSONSchemaValidator.formatError(key, replacements) 504 message: chromeHidden.JSONSchemaValidator.formatError(key, replacements)
502 }); 505 });
503 }; 506 };
504 507
505 /** 508 /**
506 * Resets errors to an empty list so you can call 'validate' again. 509 * Resets errors to an empty list so you can call 'validate' again.
507 */ 510 */
508 chromeHidden.JSONSchemaValidator.prototype.resetErrors = function() { 511 chromeHidden.JSONSchemaValidator.prototype.resetErrors = function() {
509 this.errors = []; 512 this.errors = [];
510 }; 513 };
OLDNEW
« no previous file with comments | « chrome/renderer/resources/extensions/input.ime_custom_bindings.js ('k') | chrome/renderer/resources/extensions/last_error.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698