| Index: content/plugin/webplugin_delegate_stub.cc
|
| diff --git a/content/plugin/webplugin_delegate_stub.cc b/content/plugin/webplugin_delegate_stub.cc
|
| deleted file mode 100644
|
| index e6927bbd343aa04e74f144ef3e890b29a02b4a09..0000000000000000000000000000000000000000
|
| --- a/content/plugin/webplugin_delegate_stub.cc
|
| +++ /dev/null
|
| @@ -1,220 +0,0 @@
|
| -// Copyright (c) 2012 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.
|
| -
|
| -#include "content/plugin/webplugin_delegate_stub.h"
|
| -
|
| -#include "build/build_config.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/command_line.h"
|
| -#include "base/strings/string_number_conversions.h"
|
| -#include "content/child/npapi/plugin_instance.h"
|
| -#include "content/child/npapi/webplugin_delegate_impl.h"
|
| -#include "content/child/npapi/webplugin_resource_client.h"
|
| -#include "content/child/plugin_messages.h"
|
| -#include "content/common/cursors/webcursor.h"
|
| -#include "content/plugin/plugin_channel.h"
|
| -#include "content/plugin/plugin_thread.h"
|
| -#include "content/plugin/webplugin_proxy.h"
|
| -#include "content/public/common/content_client.h"
|
| -#include "content/public/common/content_constants.h"
|
| -#include "content/public/common/content_switches.h"
|
| -#include "third_party/WebKit/public/platform/WebCursorInfo.h"
|
| -#include "third_party/npapi/bindings/npapi.h"
|
| -#include "third_party/npapi/bindings/npruntime.h"
|
| -
|
| -using blink::WebCursorInfo;
|
| -
|
| -namespace content {
|
| -
|
| -static void DestroyWebPluginAndDelegate(
|
| - WebPluginDelegateImpl* delegate,
|
| - WebPlugin* webplugin) {
|
| - if (delegate)
|
| - delegate->PluginDestroyed();
|
| -
|
| - delete webplugin;
|
| -}
|
| -
|
| -WebPluginDelegateStub::WebPluginDelegateStub(
|
| - const std::string& mime_type, int instance_id, PluginChannel* channel) :
|
| - mime_type_(mime_type),
|
| - instance_id_(instance_id),
|
| - channel_(channel),
|
| - delegate_(NULL),
|
| - webplugin_(NULL),
|
| - in_destructor_(false) {
|
| - DCHECK(channel);
|
| -}
|
| -
|
| -WebPluginDelegateStub::~WebPluginDelegateStub() {
|
| - in_destructor_ = true;
|
| - GetContentClient()->SetActiveURL(page_url_);
|
| -
|
| - if (channel_->in_send()) {
|
| - // The delegate or an npobject is in the callstack, so don't delete it
|
| - // right away.
|
| - base::MessageLoop::current()->PostNonNestableTask(
|
| - FROM_HERE,
|
| - base::Bind(&DestroyWebPluginAndDelegate,
|
| - delegate_,
|
| - webplugin_));
|
| - } else {
|
| - // Safe to delete right away.
|
| - DestroyWebPluginAndDelegate(delegate_, webplugin_);
|
| - }
|
| -}
|
| -
|
| -bool WebPluginDelegateStub::OnMessageReceived(const IPC::Message& msg) {
|
| - GetContentClient()->SetActiveURL(page_url_);
|
| -
|
| - // A plugin can execute a script to delete itself in any of its NPP methods.
|
| - // Hold an extra reference to ourself so that if this does occur and we're
|
| - // handling a sync message, we don't crash when attempting to send a reply.
|
| - // The exception to this is when we're already in the destructor.
|
| - if (!in_destructor_)
|
| - AddRef();
|
| -
|
| - bool handled = true;
|
| - IPC_BEGIN_MESSAGE_MAP(WebPluginDelegateStub, msg)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_Init, OnInit)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_SetFocus, OnSetFocus)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_HandleInputEvent, OnHandleInputEvent)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_Paint, OnPaint)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_DidPaint, OnDidPaint)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_UpdateGeometry, OnUpdateGeometry)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_UpdateGeometrySync, OnUpdateGeometry)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_SetContentAreaFocus, OnSetContentAreaFocus)
|
| -#if defined(OS_MACOSX)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_SetWindowFocus, OnSetWindowFocus)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_ContainerHidden, OnContainerHidden)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_ContainerShown, OnContainerShown)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_WindowFrameChanged, OnWindowFrameChanged)
|
| - IPC_MESSAGE_HANDLER(PluginMsg_ImeCompositionCompleted,
|
| - OnImeCompositionCompleted)
|
| -#endif
|
| - IPC_MESSAGE_UNHANDLED(handled = false)
|
| - IPC_END_MESSAGE_MAP()
|
| -
|
| - if (!in_destructor_)
|
| - Release();
|
| -
|
| - DCHECK(handled);
|
| - return handled;
|
| -}
|
| -
|
| -bool WebPluginDelegateStub::Send(IPC::Message* msg) {
|
| - return channel_->Send(msg);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnInit(const PluginMsg_Init_Params& params,
|
| - bool* transparent,
|
| - bool* result) {
|
| - page_url_ = params.page_url;
|
| - GetContentClient()->SetActiveURL(page_url_);
|
| -
|
| - *transparent = false;
|
| - *result = false;
|
| - if (params.arg_names.size() != params.arg_values.size()) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| -
|
| - const base::CommandLine& command_line =
|
| - *base::CommandLine::ForCurrentProcess();
|
| - base::FilePath path =
|
| - command_line.GetSwitchValuePath(switches::kPluginPath);
|
| -
|
| - webplugin_ = new WebPluginProxy(channel_.get(),
|
| - instance_id_,
|
| - page_url_,
|
| - params.host_render_view_routing_id);
|
| - delegate_ = WebPluginDelegateImpl::Create(webplugin_, path, mime_type_);
|
| - if (delegate_) {
|
| - if (delegate_->GetQuirks() &
|
| - WebPluginDelegateImpl::PLUGIN_QUIRK_DIE_AFTER_UNLOAD) {
|
| - PluginThread::current()->SetForcefullyTerminatePluginProcess();
|
| - }
|
| -
|
| - webplugin_->set_delegate(delegate_);
|
| - std::vector<std::string> arg_names = params.arg_names;
|
| - std::vector<std::string> arg_values = params.arg_values;
|
| -
|
| - *result = delegate_->Initialize(params.url,
|
| - arg_names,
|
| - arg_values,
|
| - params.load_manually);
|
| - *transparent = delegate_->instance()->transparent();
|
| - }
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnSetFocus(bool focused) {
|
| - delegate_->SetFocus(focused);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnHandleInputEvent(
|
| - const blink::WebInputEvent *event,
|
| - bool* handled,
|
| - WebCursor* cursor) {
|
| - WebCursor::CursorInfo cursor_info;
|
| - *handled = delegate_->HandleInputEvent(*event, &cursor_info);
|
| - cursor->InitFromCursorInfo(cursor_info);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnPaint(const gfx::Rect& damaged_rect) {
|
| - webplugin_->Paint(damaged_rect);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnDidPaint() {
|
| - webplugin_->DidPaint();
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnUpdateGeometry(
|
| - const PluginMsg_UpdateGeometry_Param& param) {
|
| - webplugin_->UpdateGeometry(
|
| - param.window_rect, param.clip_rect,
|
| - param.windowless_buffer0, param.windowless_buffer1,
|
| - param.windowless_buffer_index);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnSetContentAreaFocus(bool has_focus) {
|
| - if (delegate_)
|
| - delegate_->SetContentAreaHasFocus(has_focus);
|
| -}
|
| -
|
| -#if defined(OS_MACOSX)
|
| -void WebPluginDelegateStub::OnSetWindowFocus(bool has_focus) {
|
| - if (delegate_)
|
| - delegate_->SetWindowHasFocus(has_focus);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnContainerHidden() {
|
| - if (delegate_)
|
| - delegate_->SetContainerVisibility(false);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnContainerShown(gfx::Rect window_frame,
|
| - gfx::Rect view_frame,
|
| - bool has_focus) {
|
| - if (delegate_) {
|
| - delegate_->WindowFrameChanged(window_frame, view_frame);
|
| - delegate_->SetContainerVisibility(true);
|
| - delegate_->SetWindowHasFocus(has_focus);
|
| - }
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnWindowFrameChanged(const gfx::Rect& window_frame,
|
| - const gfx::Rect& view_frame) {
|
| - if (delegate_)
|
| - delegate_->WindowFrameChanged(window_frame, view_frame);
|
| -}
|
| -
|
| -void WebPluginDelegateStub::OnImeCompositionCompleted(
|
| - const base::string16& text) {
|
| - if (delegate_)
|
| - delegate_->ImeCompositionCompleted(text);
|
| -}
|
| -#endif // OS_MACOSX
|
| -
|
| -} // namespace content
|
|
|