summaryrefslogtreecommitdiffstats
path: root/remoting/client/plugin/chromoting_scriptable_object.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/client/plugin/chromoting_scriptable_object.cc')
-rw-r--r--remoting/client/plugin/chromoting_scriptable_object.cc30
1 files changed, 26 insertions, 4 deletions
diff --git a/remoting/client/plugin/chromoting_scriptable_object.cc b/remoting/client/plugin/chromoting_scriptable_object.cc
index b8b9584..7970785 100644
--- a/remoting/client/plugin/chromoting_scriptable_object.cc
+++ b/remoting/client/plugin/chromoting_scriptable_object.cc
@@ -5,6 +5,7 @@
#include "remoting/client/plugin/chromoting_scriptable_object.h"
#include "base/logging.h"
+#include "base/message_loop_proxy.h"
// TODO(wez): Remove this when crbug.com/86353 is complete.
#include "ppapi/cpp/private/var_private.h"
#include "remoting/base/auth_token_util.h"
@@ -41,8 +42,10 @@ const char kRoundTripLatencyAttribute[] = "roundTripLatency";
} // namespace
ChromotingScriptableObject::ChromotingScriptableObject(
- ChromotingInstance* instance)
- : instance_(instance) {
+ ChromotingInstance* instance, base::MessageLoopProxy* plugin_message_loop)
+ : instance_(instance),
+ plugin_message_loop_(plugin_message_loop),
+ ALLOW_THIS_IN_INITIALIZER_LIST(task_factory_(this)) {
}
ChromotingScriptableObject::~ChromotingScriptableObject() {
@@ -282,6 +285,24 @@ void ChromotingScriptableObject::AddMethod(const std::string& name,
}
void ChromotingScriptableObject::SignalConnectionInfoChange() {
+ plugin_message_loop_->PostTask(
+ FROM_HERE, task_factory_.NewRunnableMethod(
+ &ChromotingScriptableObject::DoSignalConnectionInfoChange));
+}
+
+void ChromotingScriptableObject::SignalDesktopSizeChange() {
+ plugin_message_loop_->PostTask(
+ FROM_HERE, task_factory_.NewRunnableMethod(
+ &ChromotingScriptableObject::DoSignalDesktopSizeChange));
+}
+
+void ChromotingScriptableObject::SignalLoginChallenge() {
+ plugin_message_loop_->PostTask(
+ FROM_HERE, task_factory_.NewRunnableMethod(
+ &ChromotingScriptableObject::DoSignalLoginChallenge));
+}
+
+void ChromotingScriptableObject::DoSignalConnectionInfoChange() {
Var exception;
VarPrivate cb = GetProperty(Var(kConnectionInfoUpdate), &exception);
@@ -293,7 +314,8 @@ void ChromotingScriptableObject::SignalConnectionInfoChange() {
LOG(ERROR) << "Exception when invoking connectionInfoUpdate JS callback.";
}
-void ChromotingScriptableObject::SignalDesktopSizeChange() {
+
+void ChromotingScriptableObject::DoSignalDesktopSizeChange() {
Var exception;
VarPrivate cb = GetProperty(Var(kDesktopSizeUpdate), &exception);
@@ -307,7 +329,7 @@ void ChromotingScriptableObject::SignalDesktopSizeChange() {
}
}
-void ChromotingScriptableObject::SignalLoginChallenge() {
+void ChromotingScriptableObject::DoSignalLoginChallenge() {
Var exception;
VarPrivate cb = GetProperty(Var(kLoginChallenge), &exception);