Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 // Custom binding for the Permissions API. | 5 // Custom binding for the Permissions API. |
| 6 | 6 |
| 7 var binding = require('binding').Binding.create('permissions'); | 7 var binding = require('binding').Binding.create('permissions'); |
| 8 | 8 |
| 9 var Event = require('event_bindings').Event; | 9 var Event = require('event_bindings').Event; |
| 10 | 10 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 35 | 35 |
| 36 var args = arguments[0].permissions; | 36 var args = arguments[0].permissions; |
| 37 if (!args) | 37 if (!args) |
| 38 return arguments; | 38 return arguments; |
| 39 | 39 |
| 40 for (var i = 0; i < args.length; i += 1) { | 40 for (var i = 0; i < args.length; i += 1) { |
| 41 if (typeof(args[i]) == 'object') { | 41 if (typeof(args[i]) == 'object') { |
| 42 var a = args[i]; | 42 var a = args[i]; |
| 43 var keys = $Object.keys(a); | 43 var keys = $Object.keys(a); |
| 44 if (keys.length != 1) { | 44 if (keys.length != 1) { |
| 45 throw new Error("Too many keys in object-style permission."); | 45 throw new $Error.self("Too many keys in object-style permission."); |
|
not at google - send to devlin
2014/08/19 16:45:56
new Error() ... I think? This stuff is confusing.
| |
| 46 } | 46 } |
| 47 arguments[0].permissions[i] = keys[0] + '|' + | 47 arguments[0].permissions[i] = keys[0] + '|' + |
| 48 JSON.stringify(a[keys[0]]); | 48 JSON.stringify(a[keys[0]]); |
| 49 } | 49 } |
| 50 } | 50 } |
| 51 | 51 |
| 52 return arguments; | 52 return arguments; |
| 53 } | 53 } |
| 54 | 54 |
| 55 // Convert complex permissions to strings so they validate against the schema | 55 // Convert complex permissions to strings so they validate against the schema |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 for (var i = 0; i < args[0].permissions.length; i += 1) { | 88 for (var i = 0; i < args[0].permissions.length; i += 1) { |
| 89 args[0].permissions[i] = maybeConvertToObject(args[0].permissions[i]); | 89 args[0].permissions[i] = maybeConvertToObject(args[0].permissions[i]); |
| 90 } | 90 } |
| 91 $Function.call(Event.prototype.dispatchToListener, this, callback, args); | 91 $Function.call(Event.prototype.dispatchToListener, this, callback, args); |
| 92 }; | 92 }; |
| 93 permissions.onRemoved.dispatchToListener = | 93 permissions.onRemoved.dispatchToListener = |
| 94 permissions.onAdded.dispatchToListener; | 94 permissions.onAdded.dispatchToListener; |
| 95 }); | 95 }); |
| 96 | 96 |
| 97 exports.binding = binding.generate(); | 97 exports.binding = binding.generate(); |
| OLD | NEW |