Index: extensions/renderer/resources/binding.js |
diff --git a/extensions/renderer/resources/binding.js b/extensions/renderer/resources/binding.js |
index b0c6afa4fa43a8fe01aabdad02a32a4ce1519771..1ceb2defbfd1d5a70dd682a48fda4f30ede6ae00 100644 |
--- a/extensions/renderer/resources/binding.js |
+++ b/extensions/renderer/resources/binding.js |
@@ -419,10 +419,22 @@ Binding.prototype = { |
addProperties(mod, schema); |
- var availability = GetAvailability(schema.namespace); |
- if (!availability.is_available && $Object.keys(mod).length == 0) { |
+ // This generate() call is considered successful if any functions, |
+ // properties, or events were created. |
+ var success = ($Object.keys(mod).length > 0); |
+ |
+ // The special case is runtime.lastError which is only occasionally set, so |
+ // specifically check its availability. |
+ if (schema.namespace == 'runtime' && |
+ GetAvailability('runtime.lastError').is_available) { |
+ success = true; |
+ } |
+ |
+ if (!success) { |
+ // If an API was available it should have been successfully generated. |
+ logging.DCHECK(!GetAvailability(schema.namespace).is_available); |
console.error('chrome.' + schema.namespace + ' is not available: ' + |
- availability.message); |
+ availability.message); |
return; |
} |