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

Unified Diff: extensions/renderer/api_signature.cc

Issue 2915813003: [Extensions Bindings] Accept null callbacks while ignoring schema (Closed)
Patch Set: Created 3 years, 7 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: extensions/renderer/api_signature.cc
diff --git a/extensions/renderer/api_signature.cc b/extensions/renderer/api_signature.cc
index e15a53f80392707341e8d3c536a8b3a6658bf49f..f4d42c875ab581af8066204c482b3b3984aff644 100644
--- a/extensions/renderer/api_signature.cc
+++ b/extensions/renderer/api_signature.cc
@@ -317,10 +317,11 @@ bool APISignature::ConvertArgumentsIgnoringSchema(
// the arguments in the signature. This is very broken.
if (HasCallback(signature_)) {
CHECK(!arguments.empty());
- if (arguments[size - 1]->IsFunction()) {
- callback = arguments[size - 1].As<v8::Function>();
- --size;
- }
+ v8::Local<v8::Value> value = arguments.back();
+ --size;
+ DCHECK(value->IsFunction() || value->IsUndefined() || value->IsNull());
jbroman 2017/06/05 18:16:32 This DCHECK implies this value can only come from
Devlin 2017/06/09 20:26:31 More-or-less. :/ In theory, we should only get he
+ if (value->IsFunction())
+ callback = value.As<v8::Function>();
}
auto json = base::MakeUnique<base::ListValue>();
« no previous file with comments | « no previous file | extensions/renderer/api_signature_unittest.cc » ('j') | extensions/renderer/api_signature_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698