diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-16 18:27:27 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-16 18:27:27 +0000 |
commit | bfd9d5af0f678688dbaeba69d50a79c07285aa7e (patch) | |
tree | b553b7aeb07c76ac0a187480ed77366c06a8deec /remoting/base | |
parent | ad8ef9ac2412b8179a06984bc23f14287a8bda45 (diff) | |
download | chromium_src-bfd9d5af0f678688dbaeba69d50a79c07285aa7e.zip chromium_src-bfd9d5af0f678688dbaeba69d50a79c07285aa7e.tar.gz chromium_src-bfd9d5af0f678688dbaeba69d50a79c07285aa7e.tar.bz2 |
Revert 96981 - Add PluginMessageLoopProxy and use it for Host plugin UI thread.
The new class will also be used in the client plugin for the main plugin thread.
BUG=None
TEST=Everything works.
Review URL: http://codereview.chromium.org/7635030
TBR=sergeyu@chromium.org
Review URL: http://codereview.chromium.org/7665002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96984 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/base')
-rw-r--r-- | remoting/base/plugin_message_loop_proxy.cc | 114 | ||||
-rw-r--r-- | remoting/base/plugin_message_loop_proxy.h | 79 |
2 files changed, 0 insertions, 193 deletions
diff --git a/remoting/base/plugin_message_loop_proxy.cc b/remoting/base/plugin_message_loop_proxy.cc deleted file mode 100644 index 0f6c668..0000000 --- a/remoting/base/plugin_message_loop_proxy.cc +++ /dev/null @@ -1,114 +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 "remoting/base/plugin_message_loop_proxy.h" - -namespace remoting { - -PluginMessageLoopProxy::PluginMessageLoopProxy(Delegate* delegate) - : delegate_(delegate) { -} - -PluginMessageLoopProxy::~PluginMessageLoopProxy() { -} - -void PluginMessageLoopProxy::Detach() { - base::AutoLock auto_lock(lock_); - delegate_ = NULL; -} - -// MessageLoopProxy interface implementation. -bool PluginMessageLoopProxy::PostTask( - const tracked_objects::Location& from_here, - Task* task) { - return PostDelayedTask(from_here, task, 0); -} - -bool PluginMessageLoopProxy::PostDelayedTask( - const tracked_objects::Location& from_here, - Task* task, - int64 delay_ms) { - base::AutoLock auto_lock(lock_); - if (!delegate_) { - return false; - } else { - return delegate_->RunOnPluginThread( - delay_ms, &PluginMessageLoopProxy::RunTask, task); - } -} - -bool PluginMessageLoopProxy::PostNonNestableTask( - const tracked_objects::Location& from_here, - Task* task) { - // All tasks running on this message loop are non-nestable. - return PostTask(from_here, task); -} - -bool PluginMessageLoopProxy::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - Task* task, - int64 delay_ms) { - // All tasks running on this message loop are non-nestable. - return PostDelayedTask(from_here, task, delay_ms); -} - -bool PluginMessageLoopProxy::PostTask( - const tracked_objects::Location& from_here, - const base::Closure& task) { - return PostDelayedTask(from_here, task, 0); -} - -bool PluginMessageLoopProxy::PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) { - base::AutoLock auto_lock(lock_); - if (!delegate_) { - return false; - } else { - base::Closure* task_on_heap = new base::Closure(task); - return delegate_->RunOnPluginThread( - delay_ms, &PluginMessageLoopProxy::RunClosure, task_on_heap); - } -} - -bool PluginMessageLoopProxy::PostNonNestableTask( - const tracked_objects::Location& from_here, - const base::Closure& task) { - // All tasks running on this message loop are non-nestable. - return PostTask(from_here, task); -} - -bool PluginMessageLoopProxy::PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) { - // All tasks running on this message loop are non-nestable. - return PostDelayedTask(from_here, task, delay_ms); -} - -bool PluginMessageLoopProxy::BelongsToCurrentThread() { - base::AutoLock auto_lock(lock_); - if (delegate_) { - return delegate_->IsPluginThread(); - } else { - return false; - } -} - -// static -void PluginMessageLoopProxy::RunTask(void* data) { - Task* task = reinterpret_cast<Task*>(data); - task->Run(); - delete task; -} - -// static -void PluginMessageLoopProxy::RunClosure(void* data) { - base::Closure* task = reinterpret_cast<base::Closure*>(data); - task->Run(); - delete task; -} - -} // namespace remoting diff --git a/remoting/base/plugin_message_loop_proxy.h b/remoting/base/plugin_message_loop_proxy.h deleted file mode 100644 index cfabcd9..0000000 --- a/remoting/base/plugin_message_loop_proxy.h +++ /dev/null @@ -1,79 +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 REMOTING_BASE_PLUGIN_MESSAGE_LOOP_H_ -#define REMOTING_BASE_PLUGIN_MESSAGE_LOOP_H_ - -#include "base/callback.h" -#include "base/compiler_specific.h" -#include "base/message_loop_proxy.h" - -namespace remoting { - -// MessageLoopProxy for plugin main threads. -class PluginMessageLoopProxy : public base::MessageLoopProxy { - public: - class Delegate { - public: - Delegate() { } - virtual ~Delegate() { } - - virtual bool RunOnPluginThread( - int delay_ms, void(function)(void*), void* data) = 0; - virtual bool IsPluginThread() = 0; - }; - - // Caller keeps ownership of delegate. - PluginMessageLoopProxy(Delegate* delegate); - virtual ~PluginMessageLoopProxy(); - - void Detach(); - - // base::MessageLoopProxy interface. - virtual bool PostTask( - const tracked_objects::Location& from_here, - Task* task) OVERRIDE; - virtual bool PostDelayedTask( - const tracked_objects::Location& from_here, - Task* task, - int64 delay_ms) OVERRIDE; - virtual bool PostNonNestableTask( - const tracked_objects::Location& from_here, - Task* task) OVERRIDE; - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - Task* task, - int64 delay_ms) OVERRIDE; - - virtual bool PostTask( - const tracked_objects::Location& from_here, - const base::Closure& task) OVERRIDE; - virtual bool PostDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) OVERRIDE; - virtual bool PostNonNestableTask( - const tracked_objects::Location& from_here, - const base::Closure& task) OVERRIDE; - virtual bool PostNonNestableDelayedTask( - const tracked_objects::Location& from_here, - const base::Closure& task, - int64 delay_ms) OVERRIDE; - - virtual bool BelongsToCurrentThread() OVERRIDE; - - private: - // |lock_| must be acquired when accessing |delegate_|. - base::Lock lock_; - Delegate* delegate_; - - static void RunTask(void* data); - static void RunClosure(void* data); - - DISALLOW_COPY_AND_ASSIGN(PluginMessageLoopProxy); -}; - -} // namespace remoting - -#endif // REMOTING_BASE_PLUGIN_MESSAGE_LOOP_H_ |