summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions/event_bindings.cc
diff options
context:
space:
mode:
authorrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-22 06:01:32 +0000
committerrafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-22 06:01:32 +0000
commitd7424eb95597971eb17f0858af0ebe1e2a74072c (patch)
tree710a9d75556c5ad3064b20e4f0881a4dd241c2af /chrome/renderer/extensions/event_bindings.cc
parent1810cfccee05909e1d9cfa2684a401f71be7b4f5 (diff)
downloadchromium_src-d7424eb95597971eb17f0858af0ebe1e2a74072c.zip
chromium_src-d7424eb95597971eb17f0858af0ebe1e2a74072c.tar.gz
chromium_src-d7424eb95597971eb17f0858af0ebe1e2a74072c.tar.bz2
Validation of extension api callbacks and event parameters in DEBUG
BUG=18711 Review URL: http://codereview.chromium.org/173034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24068 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/event_bindings.cc')
-rw-r--r--chrome/renderer/extensions/event_bindings.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc
index 5003b82..b2cecdc 100644
--- a/chrome/renderer/extensions/event_bindings.cc
+++ b/chrome/renderer/extensions/event_bindings.cc
@@ -287,6 +287,17 @@ void EventBindings::CallFunction(const std::string& function_name,
it != GetContexts().end(); ++it) {
if (render_view && render_view != (*it)->render_view)
continue;
- CallFunctionInContext((*it)->context, function_name, argc, argv);
+ v8::Handle<v8::Value> retval = CallFunctionInContext((*it)->context,
+ function_name, argc, argv);
+ // In debug, the js will validate the event parameters and return a
+ // string if a validation error has occured.
+ // TODO(rafaelw): Consider only doing this check if function_name ==
+ // "Event.dispatchJSON".
+#ifdef _DEBUG
+ if (!retval.IsEmpty() && !retval->IsUndefined()) {
+ std::string error = *v8::String::AsciiValue(retval);
+ DCHECK(false) << error;
+ }
+#endif
}
}