summaryrefslogtreecommitdiffstats
path: root/remoting/base
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-16 18:27:27 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-16 18:27:27 +0000
commitbfd9d5af0f678688dbaeba69d50a79c07285aa7e (patch)
treeb553b7aeb07c76ac0a187480ed77366c06a8deec /remoting/base
parentad8ef9ac2412b8179a06984bc23f14287a8bda45 (diff)
downloadchromium_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.cc114
-rw-r--r--remoting/base/plugin_message_loop_proxy.h79
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_