summaryrefslogtreecommitdiffstats
path: root/chrome/plugin/webplugin_delegate_stub.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/plugin/webplugin_delegate_stub.cc')
-rw-r--r--chrome/plugin/webplugin_delegate_stub.cc32
1 files changed, 24 insertions, 8 deletions
diff --git a/chrome/plugin/webplugin_delegate_stub.cc b/chrome/plugin/webplugin_delegate_stub.cc
index 9d83b49..73f5b79 100644
--- a/chrome/plugin/webplugin_delegate_stub.cc
+++ b/chrome/plugin/webplugin_delegate_stub.cc
@@ -4,11 +4,11 @@
#include "chrome/plugin/webplugin_delegate_stub.h"
+#include "build/build_config.h"
+
#include "base/command_line.h"
#include "chrome/common/chrome_switches.h"
-#include "chrome/common/gfx/emf.h"
#include "chrome/common/plugin_messages.h"
-#include "chrome/common/win_util.h"
#include "chrome/plugin/npobject_stub.h"
#include "chrome/plugin/plugin_channel.h"
#include "chrome/plugin/plugin_thread.h"
@@ -19,6 +19,11 @@
#include "webkit/glue/webcursor.h"
#include "webkit/glue/webplugin_delegate.h"
+#if defined(OS_WIN)
+#include "chrome/common/gfx/emf.h"
+#include "chrome/common/win_util.h"
+#endif
+
class FinishDestructionTask : public Task {
public:
FinishDestructionTask(WebPluginDelegate* delegate, WebPlugin* webplugin)
@@ -124,8 +129,8 @@ void WebPluginDelegateStub::OnInit(const PluginMsg_Init_Params& params,
}
const CommandLine& command_line = *CommandLine::ForCurrentProcess();
- FilePath path =
- FilePath(command_line.GetSwitchValue(switches::kPluginPath));
+ FilePath path = FilePath::FromWStringHack(
+ command_line.GetSwitchValue(switches::kPluginPath));
delegate_ = WebPluginDelegate::Create(
path, mime_type_, gfx::NativeViewFromId(params.containing_window));
if (delegate_) {
@@ -215,6 +220,7 @@ void WebPluginDelegateStub::OnDidPaint() {
void WebPluginDelegateStub::OnPrint(base::SharedMemoryHandle* shared_memory,
size_t* size) {
+#if defined(OS_WIN)
gfx::Emf emf;
if (!emf.CreateDc(NULL, NULL)) {
NOTREACHED();
@@ -236,15 +242,20 @@ void WebPluginDelegateStub::OnPrint(base::SharedMemoryHandle* shared_memory,
// Retrieve a copy of the data.
bool success = emf.GetData(shared_buf.memory(), *size);
DCHECK(success);
+#else
+ // TODO(port): plugin printing.
+ NOTIMPLEMENTED();
+#endif
}
void WebPluginDelegateStub::OnUpdateGeometry(
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_id,
+ const TransportDIB::Id& background_buffer_id) {
webplugin_->UpdateGeometry(
- window_rect, clip_rect, windowless_buffer, background_buffer);
+ window_rect, clip_rect,
+ windowless_buffer_id, background_buffer_id);
}
void WebPluginDelegateStub::OnGetPluginScriptableObject(int* route_id,
@@ -259,7 +270,7 @@ void WebPluginDelegateStub::OnGetPluginScriptableObject(int* route_id,
*npobject_ptr = reinterpret_cast<intptr_t>(object);
// The stub will delete itself when the proxy tells it that it's released, or
// otherwise when the channel is closed.
- NPObjectStub* stub = new NPObjectStub(
+ new NPObjectStub(
object, channel_.get(), *route_id, webplugin_->modal_dialog_event());
// Release ref added by GetPluginScriptableObject (our stub holds its own).
@@ -315,6 +326,7 @@ void WebPluginDelegateStub::CreateSharedBuffer(
return;
}
+#if defined(OS_WIN)
BOOL result = DuplicateHandle(GetCurrentProcess(),
shared_buf->handle(),
channel_->renderer_handle(),
@@ -325,6 +337,10 @@ void WebPluginDelegateStub::CreateSharedBuffer(
// If the calling function's shared_buf is on the stack, its destructor will
// close the shared memory buffer handle. This is fine since we already
// duplicated the handle to the renderer process so it will stay "alive".
+#else
+ // TODO(port): this should use TransportDIB.
+ NOTIMPLEMENTED();
+#endif
}
void WebPluginDelegateStub::OnHandleURLRequestReply(