Chromium Code Reviews| Index: content/renderer/java_bridge_dispatcher.h |
| diff --git a/content/renderer/java_bridge_dispatcher.h b/content/renderer/java_bridge_dispatcher.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0c162072517b6264d46b8c0addd89a64263aaab0 |
| --- /dev/null |
| +++ b/content/renderer/java_bridge_dispatcher.h |
| @@ -0,0 +1,42 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CONTENT_RENDERER_JAVA_BRIDGE_DISPATCHER_H_ |
| +#define CONTENT_RENDERER_JAVA_BRIDGE_DISPATCHER_H_ |
| + |
| +#include "content/common/webkit_param_traits.h" // For NPVariant_Param |
| +#include "content/public/renderer/render_view_observer.h" |
| +#include "content/renderer/java_bridge_channel.h" |
|
jam
2011/10/19 23:46:19
forward declare?
Steve Block
2011/10/20 09:43:08
Done.
|
| +#include "ipc/ipc_channel_handle.h" |
| + |
| +// This class handles injecting Java objects into the main frame of a |
| +// RenderView. The 'add' and 'remove' messages received from the browser |
| +// process modify the entries in a map of 'pending' objects. These objects are |
| +// bound to the window object of the main frame when that window object is next |
| +// cleared. These objects remain bound until the window object is cleared |
| +// again. |
| +class JavaBridgeDispatcher : public content::RenderViewObserver |
| +{ |
|
jam
2011/10/19 23:46:19
nit: this should be on previous line
Steve Block
2011/10/20 09:43:08
Done.
|
| + public: |
| + JavaBridgeDispatcher(content::RenderView* render_view, |
| + const IPC::ChannelHandle& channel_handle); |
| + virtual ~JavaBridgeDispatcher(); |
| + |
| + private: |
| + // RenderViewObserver override: |
| + virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
| + virtual void DidClearWindowObject(WebKit::WebFrame* frame) OVERRIDE; |
| + |
| + // Message handlers |
| + void OnAddNamedObject(const string16& name, const NPVariant_Param&); |
|
jam
2011/10/19 23:46:19
nit: chrome style is to put the parameter names in
Steve Block
2011/10/20 09:43:08
Done.
|
| + void OnRemoveNamedObject(const string16& name); |
| + |
| + // Objects that will be bound to the window when the window object is next |
| + // cleared. We hold a ref to these. |
| + typedef std::map<string16, NPVariant> ObjectMap; |
| + ObjectMap objects_; |
| + scoped_ptr<JavaBridgeChannel> channel_; |
| +}; |
| + |
| +#endif // CONTENT_RENDERER_JAVA_BRIDGE_DISPATCHER_H_ |