OLD | NEW |
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 var Event = require('event_bindings').Event; | 5 var Event = require('event_bindings').Event; |
6 var forEach = require('utils').forEach; | 6 var forEach = require('utils').forEach; |
7 var GetAvailability = requireNative('v8_context').GetAvailability; | 7 var GetAvailability = requireNative('v8_context').GetAvailability; |
8 var logActivity = requireNative('activityLogger'); | 8 var logActivity = requireNative('activityLogger'); |
9 var logging = requireNative('logging'); | 9 var logging = requireNative('logging'); |
10 var process = requireNative('process'); | 10 var process = requireNative('process'); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
236 } | 236 } |
237 | 237 |
238 var mod = {}; | 238 var mod = {}; |
239 | 239 |
240 var namespaces = $String.split(schema.namespace, '.'); | 240 var namespaces = $String.split(schema.namespace, '.'); |
241 for (var index = 0, name; name = namespaces[index]; index++) { | 241 for (var index = 0, name; name = namespaces[index]; index++) { |
242 mod[name] = mod[name] || {}; | 242 mod[name] = mod[name] || {}; |
243 mod = mod[name]; | 243 mod = mod[name]; |
244 } | 244 } |
245 | 245 |
246 // Add types to global schemaValidator, the types we depend on from other | |
247 // namespaces will be added as needed. | |
248 if (schema.types) { | 246 if (schema.types) { |
249 $Array.forEach(schema.types, function(t) { | 247 $Array.forEach(schema.types, function(t) { |
250 if (!isSchemaNodeSupported(t, platform, manifestVersion)) | 248 if (!isSchemaNodeSupported(t, platform, manifestVersion)) |
251 return; | 249 return; |
| 250 |
| 251 // Add types to global schemaValidator, the types we depend on from |
| 252 // other namespaces will be added as needed. |
252 schemaUtils.schemaValidator.addTypes(t); | 253 schemaUtils.schemaValidator.addTypes(t); |
| 254 |
| 255 // Generate symbols for enums. |
| 256 var enumValues = t['enum']; |
| 257 if (enumValues) { |
| 258 // Type IDs are qualified with the namespace during compilation, |
| 259 // unfortunately, so remove it here. |
| 260 var namespaceAndId = $String.split(t.id, '.'); |
| 261 logging.DCHECK(namespaceAndId.length == 2, t.id); |
| 262 logging.DCHECK(namespaceAndId[0] == schema.namespace, t.id); |
| 263 var id = namespaceAndId[1]; |
| 264 mod[id] = {}; |
| 265 $Array.forEach(enumValues, function(enumValue) { |
| 266 mod[id][enumValue] = enumValue; |
| 267 }); |
| 268 } |
253 }, this); | 269 }, this); |
254 } | 270 } |
255 | 271 |
256 // TODO(cduvall): Take out when all APIs have been converted to features. | 272 // TODO(cduvall): Take out when all APIs have been converted to features. |
257 // Returns whether access to the content of a schema should be denied, | 273 // Returns whether access to the content of a schema should be denied, |
258 // based on the presence of "unprivileged" and whether this is an | 274 // based on the presence of "unprivileged" and whether this is an |
259 // extension process (versus e.g. a content script). | 275 // extension process (versus e.g. a content script). |
260 function isSchemaAccessAllowed(itemSchema) { | 276 function isSchemaAccessAllowed(itemSchema) { |
261 return (contextType == 'BLESSED_EXTENSION') || | 277 return (contextType == 'BLESSED_EXTENSION') || |
262 schema.unprivileged || | 278 schema.unprivileged || |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 availability.message); | 441 availability.message); |
426 return; | 442 return; |
427 } | 443 } |
428 | 444 |
429 this.runHooks_(mod); | 445 this.runHooks_(mod); |
430 return mod; | 446 return mod; |
431 } | 447 } |
432 }; | 448 }; |
433 | 449 |
434 exports.Binding = Binding; | 450 exports.Binding = Binding; |
OLD | NEW |