diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-16 22:58:18 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-16 22:58:18 +0000 |
commit | cff9f37eaed010468a0057bb79fa7cc8507c6fe5 (patch) | |
tree | bfc0b49977388935c32263d2c3ccc31ebce37efb /remoting/base | |
parent | c514d637a6470da60e02cc190e71e20a691e14a2 (diff) | |
download | chromium_src-cff9f37eaed010468a0057bb79fa7cc8507c6fe5.zip chromium_src-cff9f37eaed010468a0057bb79fa7cc8507c6fe5.tar.gz chromium_src-cff9f37eaed010468a0057bb79fa7cc8507c6fe5.tar.bz2 |
Revert 97050 - 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.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=96981
Review URL: http://codereview.chromium.org/7635030
TBR=sergeyu@chromium.org
Review URL: http://codereview.chromium.org/7655006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97053 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_ |