summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/extensions')
-rw-r--r--chrome/renderer/extensions/extension_process_bindings.cc2
-rwxr-xr-xchrome/renderer/extensions/renderer_extension_bindings.cc11
-rwxr-xr-xchrome/renderer/extensions/renderer_extension_bindings.h6
3 files changed, 19 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc
index 5de1817..5952463 100644
--- a/chrome/renderer/extensions/extension_process_bindings.cc
+++ b/chrome/renderer/extensions/extension_process_bindings.cc
@@ -7,6 +7,7 @@
#include "base/singleton.h"
#include "chrome/common/render_messages.h"
#include "chrome/renderer/extensions/bindings_utils.h"
+#include "chrome/renderer/extensions/event_bindings.h"
#include "chrome/renderer/extensions/renderer_extension_bindings.h"
#include "chrome/renderer/js_only_v8_extensions.h"
#include "chrome/renderer/render_view.h"
@@ -22,6 +23,7 @@ namespace {
const char kExtensionName[] = "chrome/ExtensionProcessBindings";
const char* kExtensionDeps[] = {
BaseJsV8Extension::kName,
+ EventBindings::kName,
JsonJsV8Extension::kName,
JsonSchemaJsV8Extension::kName,
RendererExtensionBindings::kName,
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.cc b/chrome/renderer/extensions/renderer_extension_bindings.cc
index 8035422..63214d73 100755
--- a/chrome/renderer/extensions/renderer_extension_bindings.cc
+++ b/chrome/renderer/extensions/renderer_extension_bindings.cc
@@ -100,3 +100,14 @@ void RendererExtensionBindings::HandleMessage(const std::string& message,
EventBindings::CallFunction("chromium.Port.dispatchOnMessage_",
arraysize(argv), argv);
}
+
+void RendererExtensionBindings::HandleEvent(const std::string& event_name,
+ const std::string& args) {
+ v8::HandleScope handle_scope;
+ v8::Handle<v8::Value> argv[2];
+ argv[0] = v8::String::New(event_name.c_str());
+ argv[1] = v8::String::New(args.c_str());
+
+ EventBindings::CallFunction("chromium.Event.dispatchJSON_",
+ arraysize(argv), argv);
+}
diff --git a/chrome/renderer/extensions/renderer_extension_bindings.h b/chrome/renderer/extensions/renderer_extension_bindings.h
index 3fc1fb4..374dfb6 100755
--- a/chrome/renderer/extensions/renderer_extension_bindings.h
+++ b/chrome/renderer/extensions/renderer_extension_bindings.h
@@ -27,6 +27,12 @@ class RendererExtensionBindings {
// Dispatch the given message sent on this channel.
static void HandleMessage(const std::string& message, int port_id);
+
+ // Send this event to all extensions in this process. |args| is a JSON-
+ // serialized array that will be deserialized and provided to the callback
+ // function in event_bindings.js
+ static void HandleEvent(const std::string& event_name,
+ const std::string& args);
};
#endif // CHROME_RENDERER_EXTENSIONS_RENDERER_EXTENSION_BINDINGS_H_