diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-21 08:05:28 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-21 08:05:28 +0000 |
commit | 8930d471c128ed74b11beaa78ea1b171c1ac7157 (patch) | |
tree | 5a20cb03c8e5019385709bc069e67f03488c41a1 /chrome/plugin/plugin_thread.h | |
parent | a41fae8db8109bfeed047015b77b0d9227118540 (diff) | |
download | chromium_src-8930d471c128ed74b11beaa78ea1b171c1ac7157.zip chromium_src-8930d471c128ed74b11beaa78ea1b171c1ac7157.tar.gz chromium_src-8930d471c128ed74b11beaa78ea1b171c1ac7157.tar.bz2 |
Refactor code from RenderThread and PluginThread and move it to ChildThread. ChildProcess now owns the ChildThread, which removes duplicate code and simplifies things.
Clean up ChildProcess, there really was no need for all the templates and statics in it and its subclasses.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=10080
Review URL: http://codereview.chromium.org/21502
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10144 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/plugin/plugin_thread.h')
-rw-r--r-- | chrome/plugin/plugin_thread.h | 48 |
1 files changed, 14 insertions, 34 deletions
diff --git a/chrome/plugin/plugin_thread.h b/chrome/plugin/plugin_thread.h index 46da0e4..38b989e 100644 --- a/chrome/plugin/plugin_thread.h +++ b/chrome/plugin/plugin_thread.h @@ -5,59 +5,39 @@ #ifndef CHROME_PLUGIN_PLUGIN_THREAD_H_ #define CHROME_PLUGIN_PLUGIN_THREAD_H_ -#include "base/thread.h" -#include "chrome/common/ipc_sync_channel.h" -#include "chrome/common/message_router.h" +#include "base/file_path.h" +#include "chrome/common/child_thread.h" #include "chrome/common/resource_dispatcher.h" #include "chrome/plugin/plugin_channel.h" -class PluginProcess; class NotificationService; // The PluginThread class represents a background thread where plugin instances // live. Communication occurs between WebPluginDelegateProxy in the renderer // process and WebPluginDelegateStub in this thread through IPC messages. -class PluginThread : public IPC::Channel::Listener, - public IPC::Message::Sender, - public base::Thread { +class PluginThread : public ChildThread { public: - PluginThread(PluginProcess *process, const std::wstring& channel_name); + PluginThread(); ~PluginThread(); - // IPC::Channel::Listener implementation: - virtual void OnMessageReceived(const IPC::Message& msg); - virtual void OnChannelError(); - - // IPC::Message::Sender implementation: - virtual bool Send(IPC::Message* msg); - // Returns the one plugin thread. - static PluginThread* GetPluginThread() { return plugin_thread_; } + static PluginThread* current(); // Returns the one true dispatcher. - ResourceDispatcher* resource_dispatcher() { - return resource_dispatcher_.get(); - } + ResourceDispatcher* resource_dispatcher() { return resource_dispatcher_.get(); } private: - // Thread implementation: - void Init(); - void CleanUp(); + virtual void OnControlMessageReceived(const IPC::Message& msg); + + // Thread implementation: + virtual void Init(); + virtual void CleanUp(); - void OnCreateChannel(int process_id, HANDLE renderer_handle); + void OnCreateChannel(int process_id, HANDLE renderer); void OnShutdownResponse(bool ok_to_shutdown); void OnPluginMessage(const std::vector<uint8> &data); void OnBrowserShutdown(); - // The process that has created this thread - PluginProcess *plugin_process_; - - // The message loop used to run tasks on the thread that started this thread. - MessageLoop* owner_loop_; - - std::wstring channel_name_; - scoped_ptr<IPC::SyncChannel> channel_; - scoped_ptr<NotificationService> notification_service_; // Handles resource loads for this view. @@ -67,8 +47,8 @@ class PluginThread : public IPC::Channel::Listener, // The plugin module which is preloaded in Init HMODULE preloaded_plugin_module_; - // Points to the one PluginThread object in the process. - static PluginThread* plugin_thread_; + // Points to the plugin file that this process hosts. + FilePath plugin_path_; DISALLOW_EVIL_CONSTRUCTORS(PluginThread); }; |