summaryrefslogtreecommitdiffstats
path: root/chrome/plugin/webplugin_proxy.h
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-23 18:43:35 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-23 18:43:35 +0000
commit157e5d2a82b6b81e2f1e38202f7c6c2a6d888794 (patch)
tree8220dba701eeddf2c342c3d229776c6d55c0649d /chrome/plugin/webplugin_proxy.h
parent4af6c48ec0e1d4c81a5f68a0bd78c125730d4e96 (diff)
downloadchromium_src-157e5d2a82b6b81e2f1e38202f7c6c2a6d888794.zip
chromium_src-157e5d2a82b6b81e2f1e38202f7c6c2a6d888794.tar.gz
chromium_src-157e5d2a82b6b81e2f1e38202f7c6c2a6d888794.tar.bz2
linux (and some posix): multiprocess plugins compiling.
The goal of this change is to *not* make any behavioral change, but to instead just get all the plugin-related files linking on Linux with a bunch of NOTIMPLEMENTED()s in the appropriate places. It's enormous enough already without any refactorings or new features. Changes include: - Lots of gcc warning fixes. - Use portable replacements for Windows-specific functions (_strdup, etc.). - Use TransportDIB instead of just shared memory in the plugin messaging. Note that this is not fleshed out on Linux and on Windows it just hacks in the existing handles so there should be no functional change. - Fix --plugin-launcher to use cross-platform APIs. Review URL: http://codereview.chromium.org/79020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@14338 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin/webplugin_proxy.h')
-rw-r--r--chrome/plugin/webplugin_proxy.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/chrome/plugin/webplugin_proxy.h b/chrome/plugin/webplugin_proxy.h
index ea2c124..f181613 100644
--- a/chrome/plugin/webplugin_proxy.h
+++ b/chrome/plugin/webplugin_proxy.h
@@ -13,6 +13,7 @@
#include "base/timer.h"
#include "chrome/common/ipc_message.h"
#include "chrome/common/chrome_plugin_api.h"
+#include "chrome/common/transport_dib.h"
#include "webkit/glue/webplugin.h"
namespace base {
@@ -87,8 +88,8 @@ class WebPluginProxy : public WebPlugin {
void UpdateGeometry(const gfx::Rect& window_rect,
const gfx::Rect& clip_rect,
- const base::SharedMemoryHandle& windowless_buffer,
- const base::SharedMemoryHandle& background_buffer);
+ const TransportDIB::Id& windowless_buffer,
+ const TransportDIB::Id& background_buffer);
void CancelDocumentLoad();
@@ -107,6 +108,10 @@ class WebPluginProxy : public WebPlugin {
private:
bool Send(IPC::Message* msg);
+ // Handler for sending over the paint event to the plugin.
+ void OnPaint(const gfx::Rect& damaged_rect);
+
+#if defined(OS_WIN)
// Updates the shared memory section where windowless plugins paint.
void SetWindowlessBuffer(const base::SharedMemoryHandle& windowless_buffer,
const base::SharedMemoryHandle& background_buffer);
@@ -118,26 +123,25 @@ class WebPluginProxy : public WebPlugin {
ScopedBitmap* bitmap,
ScopedHDC* hdc);
- // Handler for sending over the paint event to the plugin.
- void OnPaint(const gfx::Rect& damaged_rect);
-
// Called when a plugin's origin moves, so that we can update the world
// transform of the local HDC.
void UpdateTransform();
+#endif
typedef base::hash_map<int, WebPluginResourceClient*> ResourceClientMap;
ResourceClientMap resource_clients_;
scoped_refptr<PluginChannel> channel_;
int route_id_;
+ uint32 cp_browsing_context_;
NPObject* window_npobject_;
NPObject* plugin_element_;
WebPluginDelegate* delegate_;
gfx::Rect damaged_rect_;
bool waiting_for_paint_;
- uint32 cp_browsing_context_;
scoped_ptr<base::WaitableEvent> modal_dialog_event_;
+#if defined(OS_WIN)
// Variables used for desynchronized windowless plugin painting. See note in
// webplugin_delegate_proxy.h for how this works.
@@ -150,6 +154,7 @@ class WebPluginProxy : public WebPlugin {
ScopedHandle background_shared_section_;
ScopedBitmap background_bitmap_;
ScopedHDC background_hdc_;
+#endif
ScopedRunnableMethodFactory<WebPluginProxy> runnable_method_factory_;
};