Chromium Code Reviews| Index: remoting/host/it2me/it2me_host.h |
| diff --git a/remoting/host/it2me/it2me_host.h b/remoting/host/it2me/it2me_host.h |
| index 349232d27a1c4505ff5b5c756f3e1ff8bb68a633..f78ca1901b2b2fa667d5981639f7129674afadf4 100644 |
| --- a/remoting/host/it2me/it2me_host.h |
| +++ b/remoting/host/it2me/it2me_host.h |
| @@ -16,6 +16,10 @@ namespace base { |
| class DictionaryValue; |
| } |
| +namespace policy { |
| +class PolicyService; |
| +} // namespace policy |
| + |
| namespace remoting { |
| class ChromotingHost; |
| @@ -28,9 +32,7 @@ class RegisterSupportHostRequest; |
| class RsaKeyPair; |
| namespace policy_hack { |
| - |
| class PolicyWatcher; |
| - |
| } // namespace policy_hack |
| // These state values are duplicated in host_session.js. Remember to update |
| @@ -60,8 +62,8 @@ class It2MeHost : public base::RefCountedThreadSafe<It2MeHost>, |
| }; |
| It2MeHost( |
| - ChromotingHostContext* context, |
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| + scoped_ptr<ChromotingHostContext> context, |
| + scoped_ptr<policy_hack::PolicyWatcher> policy_watcher, |
| base::WeakPtr<It2MeHost::Observer> observer, |
| const XmppSignalStrategy::XmppServerConfig& xmpp_server_config, |
| const std::string& directory_bot_jid); |
| @@ -91,7 +93,7 @@ class It2MeHost : public base::RefCountedThreadSafe<It2MeHost>, |
| ~It2MeHost() override; |
| - ChromotingHostContext* host_context() { return host_context_; } |
| + ChromotingHostContext* host_context() { return host_context_.get(); } |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner() { |
| return task_runner_; |
| } |
| @@ -123,6 +125,10 @@ class It2MeHost : public base::RefCountedThreadSafe<It2MeHost>, |
| // the UI thread. |
| void ShutdownOnUiThread(); |
| + // Called when |policy_watcher_| has stopped listening for changes and it is |
| + // safe to delete it. |
| + void OnPolicyWatcherShutdown(); |
| + |
| // Called when initial policies are read, and when they change. |
| void OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies); |
| @@ -131,10 +137,7 @@ class It2MeHost : public base::RefCountedThreadSafe<It2MeHost>, |
| void UpdateHostDomainPolicy(const std::string& host_domain); |
| // Caller supplied fields. |
| - |
| - // The creator of the It2MeHost object owns the the host context and is |
| - // responsible for keeping it alive throughout the liftime of the host. |
| - ChromotingHostContext* host_context_; |
| + scoped_ptr<ChromotingHostContext> host_context_; |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| base::WeakPtr<It2MeHost::Observer> observer_; |
| XmppSignalStrategy::XmppServerConfig xmpp_server_config_; |
| @@ -178,17 +181,21 @@ class It2MeHost : public base::RefCountedThreadSafe<It2MeHost>, |
| // implementation of the It2MeHost. |
| class It2MeHostFactory { |
| public: |
| - It2MeHostFactory(); |
| + // |policy_service| is used for creating the policy watcher for new |
| + // instances of It2MeHost. The caller must ensure that |policy_service| is |
| + // valid throughout the lifetime of the It2MeHostFactory and each created |
| + // It2MeHost object. |
|
Wez
2014/10/24 00:28:48
It2MeHost objects are ref-counted, so how can the
kelvinp
2014/10/24 21:39:42
Comments updated.
|
| + It2MeHostFactory(policy::PolicyService* policy_service); |
| virtual ~It2MeHostFactory(); |
| virtual scoped_refptr<It2MeHost> CreateIt2MeHost( |
| - ChromotingHostContext* context, |
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| + scoped_ptr<ChromotingHostContext> context, |
| base::WeakPtr<It2MeHost::Observer> observer, |
| const XmppSignalStrategy::XmppServerConfig& xmpp_server_config, |
| const std::string& directory_bot_jid); |
| private: |
| + policy::PolicyService* policy_service_; |
| DISALLOW_COPY_AND_ASSIGN(It2MeHostFactory); |
| }; |