| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ | 5 #ifndef REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ |
| 6 #define REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ | 6 #define REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/memory/weak_ptr.h" | 12 #include "base/memory/weak_ptr.h" |
| 13 #include "base/thread_task_runner_handle.h" | 13 #include "base/thread_task_runner_handle.h" |
| 14 #include "base/time/time.h" | 14 #include "base/time/time.h" |
| 15 #include "remoting/base/auto_thread_task_runner.h" | 15 #include "remoting/base/auto_thread_task_runner.h" |
| 16 #include "remoting/host/it2me/it2me_impl.h" | 16 #include "remoting/host/it2me/it2me_host.h" |
| 17 #include "remoting/host/plugin/host_plugin_utils.h" | 17 #include "remoting/host/plugin/host_plugin_utils.h" |
| 18 #include "remoting/host/setup/daemon_controller.h" | 18 #include "remoting/host/setup/daemon_controller.h" |
| 19 #include "remoting/jingle_glue/xmpp_signal_strategy.h" | 19 #include "remoting/jingle_glue/xmpp_signal_strategy.h" |
| 20 #include "remoting/protocol/pairing_registry.h" | 20 #include "remoting/protocol/pairing_registry.h" |
| 21 | 21 |
| 22 namespace remoting { | 22 namespace remoting { |
| 23 | 23 |
| 24 // NPAPI plugin implementation for remoting host script object. | 24 // NPAPI plugin implementation for remoting host script object. |
| 25 // HostNPScriptObject creates threads that are required to run | 25 // HostNPScriptObject creates threads that are required to run |
| 26 // ChromotingHost and starts/stops the host on those threads. When | 26 // ChromotingHost and starts/stops the host on those threads. When |
| 27 // destroyed it synchronously shuts down the host and all threads. | 27 // destroyed it synchronously shuts down the host and all threads. |
| 28 class HostNPScriptObject : public It2MeImpl::Observer { | 28 class HostNPScriptObject : public It2MeHost::Observer { |
| 29 public: | 29 public: |
| 30 HostNPScriptObject(NPP plugin, | 30 HostNPScriptObject(NPP plugin, |
| 31 NPObject* parent, | 31 NPObject* parent, |
| 32 scoped_refptr<AutoThreadTaskRunner> plugin_task_runner); | 32 scoped_refptr<AutoThreadTaskRunner> plugin_task_runner); |
| 33 virtual ~HostNPScriptObject(); | 33 virtual ~HostNPScriptObject(); |
| 34 | 34 |
| 35 // Implementations used to implement the NPObject interface. | 35 // Implementations used to implement the NPObject interface. |
| 36 bool HasMethod(const std::string& method_name); | 36 bool HasMethod(const std::string& method_name); |
| 37 bool InvokeDefault(const NPVariant* args, | 37 bool InvokeDefault(const NPVariant* args, |
| 38 uint32_t arg_count, | 38 uint32_t arg_count, |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 // function(number) done_callback | 150 // function(number) done_callback |
| 151 bool StartDaemon(const NPVariant* args, | 151 bool StartDaemon(const NPVariant* args, |
| 152 uint32_t arg_count, | 152 uint32_t arg_count, |
| 153 NPVariant* result); | 153 NPVariant* result); |
| 154 | 154 |
| 155 // Stop the daemon process. Args are: | 155 // Stop the daemon process. Args are: |
| 156 // function(number) done_callback | 156 // function(number) done_callback |
| 157 bool StopDaemon(const NPVariant* args, uint32_t arg_count, NPVariant* result); | 157 bool StopDaemon(const NPVariant* args, uint32_t arg_count, NPVariant* result); |
| 158 | 158 |
| 159 ////////////////////////////////////////////////////////// | 159 ////////////////////////////////////////////////////////// |
| 160 // Implementation of It2MeImpl::Observer methods. | 160 // Implementation of It2MeHost::Observer methods. |
| 161 | 161 |
| 162 // Notifies OnStateChanged handler of a state change. | 162 // Notifies OnStateChanged handler of a state change. |
| 163 virtual void OnStateChanged(It2MeHostState state) OVERRIDE; | 163 virtual void OnStateChanged(It2MeHostState state) OVERRIDE; |
| 164 | 164 |
| 165 // If the web-app has registered a callback to be notified of changes to the | 165 // If the web-app has registered a callback to be notified of changes to the |
| 166 // NAT traversal policy, notify it. | 166 // NAT traversal policy, notify it. |
| 167 virtual void OnNatPolicyChanged(bool nat_traversal_enabled) OVERRIDE; | 167 virtual void OnNatPolicyChanged(bool nat_traversal_enabled) OVERRIDE; |
| 168 | 168 |
| 169 // Stores the Access Code for the web-app to query. | 169 // Stores the Access Code for the web-app to query. |
| 170 virtual void OnStoreAccessCode(const std::string& access_code, | 170 virtual void OnStoreAccessCode(const std::string& access_code, |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 259 | 259 |
| 260 // True if we're in the middle of handling a log message. | 260 // True if we're in the middle of handling a log message. |
| 261 bool am_currently_logging_; | 261 bool am_currently_logging_; |
| 262 | 262 |
| 263 ScopedRefNPObject log_debug_info_func_; | 263 ScopedRefNPObject log_debug_info_func_; |
| 264 | 264 |
| 265 ////////////////////////////////////////////////////////// | 265 ////////////////////////////////////////////////////////// |
| 266 // It2Me host state. | 266 // It2Me host state. |
| 267 | 267 |
| 268 // Internal implementation of the It2Me host function. | 268 // Internal implementation of the It2Me host function. |
| 269 scoped_refptr<It2MeImpl> it2me_impl_; | 269 scoped_refptr<It2MeHost> it2me_host_; |
| 270 | 270 |
| 271 // Cached, read-only copies of |it2me_impl_| session state. | 271 // Cached, read-only copies of |it2me_host_| session state. |
| 272 It2MeHostState state_; | 272 It2MeHostState state_; |
| 273 std::string access_code_; | 273 std::string access_code_; |
| 274 base::TimeDelta access_code_lifetime_; | 274 base::TimeDelta access_code_lifetime_; |
| 275 std::string client_username_; | 275 std::string client_username_; |
| 276 | 276 |
| 277 // IT2Me Talk server configuration used by |it2me_impl_| to connect. | 277 // IT2Me Talk server configuration used by |it2me_host_| to connect. |
| 278 XmppSignalStrategy::XmppServerConfig xmpp_server_config_; | 278 XmppSignalStrategy::XmppServerConfig xmpp_server_config_; |
| 279 | 279 |
| 280 // Chromoting Bot JID used by |it2me_impl_| to register the host. | 280 // Chromoting Bot JID used by |it2me_host_| to register the host. |
| 281 std::string directory_bot_jid_; | 281 std::string directory_bot_jid_; |
| 282 | 282 |
| 283 // Callbacks to notify in response to |it2me_impl_| events. | 283 // Callbacks to notify in response to |it2me_host_| events. |
| 284 ScopedRefNPObject on_nat_traversal_policy_changed_func_; | 284 ScopedRefNPObject on_nat_traversal_policy_changed_func_; |
| 285 ScopedRefNPObject on_state_changed_func_; | 285 ScopedRefNPObject on_state_changed_func_; |
| 286 | 286 |
| 287 ////////////////////////////////////////////////////////// | 287 ////////////////////////////////////////////////////////// |
| 288 // Me2Me host state. | 288 // Me2Me host state. |
| 289 | 289 |
| 290 // Platform-specific installation & configuration implementation. | 290 // Platform-specific installation & configuration implementation. |
| 291 scoped_refptr<DaemonController> daemon_controller_; | 291 scoped_refptr<DaemonController> daemon_controller_; |
| 292 | 292 |
| 293 // TODO(sergeyu): Replace this thread with | 293 // TODO(sergeyu): Replace this thread with |
| (...skipping 10 matching lines...) Expand all Loading... |
| 304 // Used to cancel pending tasks for this object when it is destroyed. | 304 // Used to cancel pending tasks for this object when it is destroyed. |
| 305 base::WeakPtr<HostNPScriptObject> weak_ptr_; | 305 base::WeakPtr<HostNPScriptObject> weak_ptr_; |
| 306 base::WeakPtrFactory<HostNPScriptObject> weak_factory_; | 306 base::WeakPtrFactory<HostNPScriptObject> weak_factory_; |
| 307 | 307 |
| 308 DISALLOW_COPY_AND_ASSIGN(HostNPScriptObject); | 308 DISALLOW_COPY_AND_ASSIGN(HostNPScriptObject); |
| 309 }; | 309 }; |
| 310 | 310 |
| 311 } // namespace remoting | 311 } // namespace remoting |
| 312 | 312 |
| 313 #endif // REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ | 313 #endif // REMOTING_HOST_PLUGIN_HOST_SCRIPT_OBJECT_H_ |
| OLD | NEW |