| Index: chrome/renderer/extensions/event_bindings.cc
|
| diff --git a/chrome/renderer/extensions/event_bindings.cc b/chrome/renderer/extensions/event_bindings.cc
|
| index 01d0f556aa8e7d4cc3f073dbb992d12fec1ff158..d1c20e75048b60d7992a6b4d4f7bde5db402efdc 100644
|
| --- a/chrome/renderer/extensions/event_bindings.cc
|
| +++ b/chrome/renderer/extensions/event_bindings.cc
|
| @@ -75,10 +75,10 @@ static EventListenerCounts& GetListenerCounts(const std::string& extension_id) {
|
|
|
| class ExtensionImpl : public ExtensionBase {
|
| public:
|
| - ExtensionImpl()
|
| + ExtensionImpl(ExtensionDispatcher* dispatcher)
|
| : ExtensionBase(EventBindings::kName,
|
| GetStringResource(IDR_EVENT_BINDINGS_JS),
|
| - 0, NULL) {
|
| + 0, NULL, dispatcher) {
|
| }
|
| ~ExtensionImpl() {}
|
|
|
| @@ -105,13 +105,9 @@ class ExtensionImpl : public ExtensionBase {
|
| EventListenerCounts& listener_counts =
|
| GetListenerCounts(context_info->extension_id);
|
| std::string event_name(*v8::String::AsciiValue(args[0]));
|
| - bool has_permission =
|
| - ExtensionProcessBindings::CurrentContextHasPermission(event_name);
|
|
|
| - if (!has_permission) {
|
| - return ExtensionProcessBindings::ThrowPermissionDeniedException(
|
| - event_name);
|
| - }
|
| + if (!CheckPermissionForCurrentContext(event_name))
|
| + return v8::Undefined();
|
|
|
| if (++listener_counts[event_name] == 1) {
|
| EventBindings::GetRenderThread()->Send(
|
| @@ -215,8 +211,8 @@ const char* EventBindings::kName = "chrome/EventBindings";
|
| const char* EventBindings::kTestingExtensionId =
|
| "oooooooooooooooooooooooooooooooo";
|
|
|
| -v8::Extension* EventBindings::Get() {
|
| - static v8::Extension* extension = new ExtensionImpl();
|
| +v8::Extension* EventBindings::Get(ExtensionDispatcher* dispatcher) {
|
| + static v8::Extension* extension = new ExtensionImpl(dispatcher);
|
| bindings_registered = true;
|
| return extension;
|
| }
|
|
|