diff options
Diffstat (limited to 'chrome/renderer/extensions/event_bindings.h')
-rw-r--r-- | chrome/renderer/extensions/event_bindings.h | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/chrome/renderer/extensions/event_bindings.h b/chrome/renderer/extensions/event_bindings.h index 4599217..75deefb 100644 --- a/chrome/renderer/extensions/event_bindings.h +++ b/chrome/renderer/extensions/event_bindings.h @@ -6,21 +6,57 @@ #define CHROME_RENDERER_EXTENSIONS_EVENT_BINDINGS_H_ #pragma once -#include "v8/include/v8.h" +#include <string> class ExtensionDispatcher; +class GURL; class RenderThreadBase; +class RenderView; + +namespace base { +class ListValue; +} + +namespace v8 { +class Context; +class Extension; +template <class T> class Handle; +} + +namespace WebKit { +class WebFrame; +} // This class deals with the javascript bindings related to Event objects. class EventBindings { public: static const char* kName; // The v8::Extension name, for dependencies. + static const char* kTestingExtensionId; static v8::Extension* Get(ExtensionDispatcher* dispatcher); // Allow RenderThread to be mocked out. static void SetRenderThread(RenderThreadBase* thread); static RenderThreadBase* GetRenderThread(); + + // Handle a script context coming / going away. + static void HandleContextCreated(WebKit::WebFrame* frame, + v8::Handle<v8::Context> context, + ExtensionDispatcher* extension_dispatcher, + int isolated_world_id); + static void HandleContextDestroyed(WebKit::WebFrame* frame); + + // Calls the given function in each registered context which is listening for + // events. If render_view is non-NULL, only call the function in contexts + // belonging to that view. See comments on + // bindings_utils::CallFunctionInContext for more details. + // The called javascript function should not return a value other than + // v8::Undefined(). A DCHECK is setup to break if it is otherwise. + static void CallFunction(const std::string& extension_id, + const std::string& function_name, + const base::ListValue& arguments, + RenderView* render_view, + const GURL& event_url); }; #endif // CHROME_RENDERER_EXTENSIONS_EVENT_BINDINGS_H_ |