| Index: extensions/renderer/event_emitter.cc
|
| diff --git a/extensions/renderer/event_emitter.cc b/extensions/renderer/event_emitter.cc
|
| index afc358a6a6ce60a105910fbafe0fd7c3f34a8b31..a78923f8cc1aca1c0bdda4b03942cf4f08ec680b 100644
|
| --- a/extensions/renderer/event_emitter.cc
|
| +++ b/extensions/renderer/event_emitter.cc
|
| @@ -41,8 +41,14 @@ void EventEmitter::Fire(v8::Local<v8::Context> context,
|
| for (const auto& listener : listeners_)
|
| listeners.push_back(listener.Get(context->GetIsolate()));
|
|
|
| - for (const auto& listener : listeners)
|
| + for (const auto& listener : listeners) {
|
| + v8::TryCatch try_catch(context->GetIsolate());
|
| + // SetVerbose() means the error will still get logged, which is what we
|
| + // want. We don't let it bubble up any further to prevent it from being
|
| + // surfaced in e.g. JS code that triggered the event.
|
| + try_catch.SetVerbose(true);
|
| run_js_.Run(listener, context, args->size(), args->data());
|
| + }
|
| }
|
|
|
| void EventEmitter::AddListener(gin::Arguments* arguments) {
|
|
|