diff options
Diffstat (limited to 'content/ppapi_plugin')
-rw-r--r-- | content/ppapi_plugin/ppapi_thread.cc | 20 | ||||
-rw-r--r-- | content/ppapi_plugin/ppapi_thread.h | 13 | ||||
-rw-r--r-- | content/ppapi_plugin/ppapi_webkit_thread.cc | 44 | ||||
-rw-r--r-- | content/ppapi_plugin/ppapi_webkit_thread.h | 50 |
4 files changed, 9 insertions, 118 deletions
diff --git a/content/ppapi_plugin/ppapi_thread.cc b/content/ppapi_plugin/ppapi_thread.cc index e989785..3277f1b 100644 --- a/content/ppapi_plugin/ppapi_thread.cc +++ b/content/ppapi_plugin/ppapi_thread.cc @@ -14,7 +14,7 @@ #include "content/common/child_process_messages.h" #include "content/ppapi_plugin/broker_process_dispatcher.h" #include "content/ppapi_plugin/plugin_process_dispatcher.h" -#include "content/ppapi_plugin/ppapi_webkit_thread.h" +#include "content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h" #include "content/public/common/content_switches.h" #include "content/public/common/sandbox_init.h" #include "ipc/ipc_channel_handle.h" @@ -25,7 +25,7 @@ #include "ppapi/proxy/plugin_globals.h" #include "ppapi/proxy/ppapi_messages.h" #include "ppapi/proxy/interface_list.h" -#include "webkit/plugins/ppapi/webkit_forwarding_impl.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h" #if defined(OS_WIN) #include "sandbox/src/sandbox.h" @@ -50,6 +50,8 @@ PpapiThread::PpapiThread(bool is_broker) base::RandInt(0, std::numeric_limits<PP_Module>::max())), next_plugin_dispatcher_id_(1) { ppapi::proxy::PluginGlobals::Get()->set_plugin_proxy_delegate(this); + webkit_platform_support_.reset(new PpapiWebKitPlatformSupportImpl); + WebKit::initialize(webkit_platform_support_.get()); } PpapiThread::~PpapiThread() { @@ -67,6 +69,7 @@ PpapiThread::~PpapiThread() { library_.GetFunctionPointer("PPP_ShutdownModule")); if (shutdown_function) shutdown_function(); + WebKit::shutdown(); } // The "regular" ChildThread implements this function and does some standard @@ -111,19 +114,6 @@ std::set<PP_Instance>* PpapiThread::GetGloballySeenInstanceIDSet() { return &globally_seen_instance_ids_; } -ppapi::WebKitForwarding* PpapiThread::GetWebKitForwarding() { - if (!webkit_forwarding_.get()) - webkit_forwarding_.reset(new webkit::ppapi::WebKitForwardingImpl); - return webkit_forwarding_.get(); -} - -void PpapiThread::PostToWebKitThread(const tracked_objects::Location& from_here, - const base::Closure& task) { - if (!webkit_thread_.get()) - webkit_thread_.reset(new PpapiWebKitThread); - webkit_thread_->PostTask(from_here, task); -} - bool PpapiThread::SendToBrowser(IPC::Message* msg) { return Send(msg); } diff --git a/content/ppapi_plugin/ppapi_thread.h b/content/ppapi_plugin/ppapi_thread.h index 56e12c5..bff66db 100644 --- a/content/ppapi_plugin/ppapi_thread.h +++ b/content/ppapi_plugin/ppapi_thread.h @@ -22,7 +22,7 @@ #include "ppapi/proxy/plugin_proxy_delegate.h" class FilePath; -class PpapiWebKitThread; +class PpapiWebKitPlatformSupportImpl; namespace IPC { struct ChannelHandle; @@ -48,9 +48,6 @@ class PpapiThread : public ChildThread, virtual void Unregister(uint32 plugin_dispatcher_id) OVERRIDE; // PluginProxyDelegate. - virtual ppapi::WebKitForwarding* GetWebKitForwarding() OVERRIDE; - virtual void PostToWebKitThread(const tracked_objects::Location& from_here, - const base::Closure& task) OVERRIDE; virtual bool SendToBrowser(IPC::Message* msg) OVERRIDE; virtual void PreCacheFont(const void* logfontw) OVERRIDE; @@ -92,15 +89,13 @@ class PpapiThread : public ChildThread, // See Dispatcher::Delegate::GetGloballySeenInstanceIDSet. std::set<PP_Instance> globally_seen_instance_ids_; - // Lazily created by GetWebKitForwarding. - scoped_ptr<ppapi::WebKitForwarding> webkit_forwarding_; - - scoped_ptr<PpapiWebKitThread> webkit_thread_; - // The PluginDispatcher instances contained in the map are not owned by it. std::map<uint32, ppapi::proxy::PluginDispatcher*> plugin_dispatchers_; uint32 next_plugin_dispatcher_id_; + // The WebKitPlatformSupport implementation. + scoped_ptr<PpapiWebKitPlatformSupportImpl> webkit_platform_support_; + DISALLOW_IMPLICIT_CONSTRUCTORS(PpapiThread); }; diff --git a/content/ppapi_plugin/ppapi_webkit_thread.cc b/content/ppapi_plugin/ppapi_webkit_thread.cc deleted file mode 100644 index cb3d482..0000000 --- a/content/ppapi_plugin/ppapi_webkit_thread.cc +++ /dev/null @@ -1,44 +0,0 @@ -// 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. - -#include "content/ppapi_plugin/ppapi_webkit_thread.h" - -#include "base/logging.h" -#include "content/ppapi_plugin/ppapi_webkitplatformsupport_impl.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebKit.h" - -PpapiWebKitThread::PpapiWebKitThread() { - DCHECK(!webkit_thread_.get()); - - webkit_thread_.reset(new InternalWebKitThread); - bool started = webkit_thread_->Start(); - DCHECK(started); -} - -PpapiWebKitThread::~PpapiWebKitThread() { -} - -void PpapiWebKitThread::PostTask(const tracked_objects::Location& from_here, - const base::Closure& task) { - webkit_thread_->message_loop()->PostTask(from_here, task); -} - -PpapiWebKitThread::InternalWebKitThread::InternalWebKitThread() - : base::Thread("PPAPIWebKit") { -} - -PpapiWebKitThread::InternalWebKitThread::~InternalWebKitThread() { - Stop(); -} - -void PpapiWebKitThread::InternalWebKitThread::Init() { - DCHECK(!webkit_platform_support_.get()); - webkit_platform_support_.reset(new PpapiWebKitPlatformSupportImpl); - WebKit::initialize(webkit_platform_support_.get()); -} - -void PpapiWebKitThread::InternalWebKitThread::CleanUp() { - DCHECK(webkit_platform_support_.get()); - WebKit::shutdown(); -} diff --git a/content/ppapi_plugin/ppapi_webkit_thread.h b/content/ppapi_plugin/ppapi_webkit_thread.h deleted file mode 100644 index a7606f6..0000000 --- a/content/ppapi_plugin/ppapi_webkit_thread.h +++ /dev/null @@ -1,50 +0,0 @@ -// 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_PPAPI_PLUGIN_PPAPI_WEBKIT_THREAD_H_ -#define CONTENT_PPAPI_PLUGIN_PPAPI_WEBKIT_THREAD_H_ -#pragma once - -#include "base/basictypes.h" -#include "base/memory/scoped_ptr.h" -#include "base/threading/thread.h" - -class PpapiWebKitPlatformSupportImpl; - -// This creates a WebKit main thread on instantiation on construction and kills -// it on deletion. See also content/browser/in_process_webkit for the -// corresponding concept in the browser process. -class PpapiWebKitThread { - public: - PpapiWebKitThread(); - ~PpapiWebKitThread(); - - // Posts the given task to the thread, see MessageLoop::PostTask. - void PostTask( - const tracked_objects::Location& from_here, - const base::Closure& task); - - private: - // Must be private so that we can carefully control its lifetime. - class InternalWebKitThread : public base::Thread { - public: - InternalWebKitThread(); - virtual ~InternalWebKitThread(); - // Does the actual initialization and shutdown of WebKit. Called at the - // beginning and end of the thread's lifetime. - virtual void Init() OVERRIDE; - virtual void CleanUp() OVERRIDE; - - private: - // The WebKitPlatformSupport implementation. Only access on WebKit thread. - scoped_ptr<PpapiWebKitPlatformSupportImpl> webkit_platform_support_; - }; - - // Pointer to the actual WebKitThread. - scoped_ptr<InternalWebKitThread> webkit_thread_; - - DISALLOW_COPY_AND_ASSIGN(PpapiWebKitThread); -}; - -#endif // CONTENT_PPAPI_PLUGIN_PPAPI_WEBKIT_THREAD_H_ |