diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-22 06:01:32 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-22 06:01:32 +0000 |
commit | d7424eb95597971eb17f0858af0ebe1e2a74072c (patch) | |
tree | 710a9d75556c5ad3064b20e4f0881a4dd241c2af /chrome/renderer/extensions/event_bindings.cc | |
parent | 1810cfccee05909e1d9cfa2684a401f71be7b4f5 (diff) | |
download | chromium_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.cc | 13 |
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 } } |