diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-23 18:43:35 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-23 18:43:35 +0000 |
commit | 157e5d2a82b6b81e2f1e38202f7c6c2a6d888794 (patch) | |
tree | 8220dba701eeddf2c342c3d229776c6d55c0649d /chrome/renderer/webplugin_delegate_proxy.h | |
parent | 4af6c48ec0e1d4c81a5f68a0bd78c125730d4e96 (diff) | |
download | chromium_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/renderer/webplugin_delegate_proxy.h')
-rw-r--r-- | chrome/renderer/webplugin_delegate_proxy.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/chrome/renderer/webplugin_delegate_proxy.h b/chrome/renderer/webplugin_delegate_proxy.h index 8af9733..99bd1e1 100644 --- a/chrome/renderer/webplugin_delegate_proxy.h +++ b/chrome/renderer/webplugin_delegate_proxy.h @@ -12,6 +12,7 @@ #include "base/ref_counted.h" #include "chrome/common/ipc_message.h" #include "chrome/renderer/plugin_channel_host.h" +#include "skia/ext/platform_canvas.h" #include "webkit/glue/webplugin.h" #include "webkit/glue/webplugin_delegate.h" @@ -27,10 +28,6 @@ class SharedMemory; class WaitableEvent; } -namespace skia { -class PlatformCanvasWin; -} - // An implementation of WebPluginDelegate that proxies all calls to // the plugin process. class WebPluginDelegateProxy : public WebPluginDelegate, @@ -57,8 +54,8 @@ class WebPluginDelegateProxy : public WebPluginDelegate, WebPlugin* plugin, bool load_manually); virtual void UpdateGeometry(const gfx::Rect& window_rect, const gfx::Rect& clip_rect); - virtual void Paint(HDC hdc, const gfx::Rect& rect); - virtual void Print(HDC hdc); + virtual void Paint(gfx::NativeDrawingContext context, const gfx::Rect& rect); + virtual void Print(gfx::NativeDrawingContext context); virtual NPObject* GetPluginScriptableObject(); virtual void DidFinishLoadWithReason(NPReason reason); virtual void SetFocus(); @@ -138,11 +135,16 @@ class WebPluginDelegateProxy : public WebPluginDelegate, intptr_t notify_data); // Draw a graphic indicating a crashed plugin. - void PaintSadPlugin(HDC hdc, const gfx::Rect& rect); + void PaintSadPlugin(gfx::NativeDrawingContext context, const gfx::Rect& rect); +#if defined(OS_WIN) // Returns true if the given rectangle is different in the hdc and the // current background bitmap. bool BackgroundChanged(HDC hdc, const gfx::Rect& rect); +#else + // TODO(port): this should be portable; just avoiding windowless plugins for + // now. +#endif // Copies the given rectangle from the transport bitmap to the backing store. void CopyFromTransportToBacking(const gfx::Rect& rect); @@ -152,7 +154,7 @@ class WebPluginDelegateProxy : public WebPluginDelegate, // Creates a shared memory section and canvas. bool CreateBitmap(scoped_ptr<base::SharedMemory>* memory, - scoped_ptr<skia::PlatformCanvasWin>* canvas); + scoped_ptr<skia::PlatformCanvas>* canvas); RenderView* render_view_; WebPlugin* plugin_; @@ -187,11 +189,11 @@ class WebPluginDelegateProxy : public WebPluginDelegate, // for transparent plugins, as they need the backgroud data during painting. bool transparent_; scoped_ptr<base::SharedMemory> backing_store_; - scoped_ptr<skia::PlatformCanvasWin> backing_store_canvas_; + scoped_ptr<skia::PlatformCanvas> backing_store_canvas_; scoped_ptr<base::SharedMemory> transport_store_; - scoped_ptr<skia::PlatformCanvasWin> transport_store_canvas_; + scoped_ptr<skia::PlatformCanvas> transport_store_canvas_; scoped_ptr<base::SharedMemory> background_store_; - scoped_ptr<skia::PlatformCanvasWin> background_store_canvas_; + scoped_ptr<skia::PlatformCanvas> background_store_canvas_; // This lets us know which portion of the backing store has been painted into. gfx::Rect backing_store_painted_; |