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

Unified Diff: chrome/renderer/resources/extensions/schema_utils.js

Issue 12647017: Lazily require types when validating Extensions API calls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/resources/extensions/schema_utils.js
diff --git a/chrome/renderer/resources/extensions/schema_utils.js b/chrome/renderer/resources/extensions/schema_utils.js
index 31531f90061d7b2cc60595f76ecb86ba4414781d..15b81cbfc9ab790747711ccc70520cb4410ad4e8 100644
--- a/chrome/renderer/resources/extensions/schema_utils.js
+++ b/chrome/renderer/resources/extensions/schema_utils.js
@@ -6,6 +6,7 @@
var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
var chrome = requireNative('chrome').GetChrome();
+var loadRefType = require('utils').loadRefType;
// TODO(benwells): unit test this file.
// JSONSchemaValidator is not loaded in unit tests.
@@ -50,10 +51,17 @@ if (chromeHidden.JSONSchemaValidator) {
function getSignatures(parameterSchemas) {
if (parameterSchemas.length === 0)
return [[]];
+ for (var i = 0; i < parameterSchemas.length; i++) {
+ if ('$ref' in parameterSchemas[i]) {
+ var type = loadRefType(parameterSchemas[i]['$ref']);
+ type.name = parameterSchemas[i].name;
+ parameterSchemas[i] = type;
+ }
+ }
not at google - send to devlin 2013/03/21 00:01:13 is this necessary, the schema validator knows how
cduvall 2013/03/21 00:59:51 Hmm, it seemed necessary when I did it, but now I
var signatures = [];
var remaining = getSignatures(parameterSchemas.slice(1));
for (var i = 0; i < remaining.length; i++)
- signatures.push([parameterSchemas[0]].concat(remaining[i]))
+ signatures.push([parameterSchemas[0]].concat(remaining[i]));
if (parameterSchemas[0].optional)
return signatures.concat(remaining);
return signatures;

Powered by Google App Engine
This is Rietveld 408576698