| 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..b2eb7490315161f370e0c6a457688193c1280c4f 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_;
|
| @@ -181,14 +184,21 @@ class It2MeHostFactory {
|
| It2MeHostFactory();
|
| virtual ~It2MeHostFactory();
|
|
|
| + // |policy_service| is used for creating the policy watcher for new
|
| + // instances of It2MeHost on ChromeOS. The caller must ensure that
|
| + // |policy_service| is valid throughout the lifetime of the It2MeHostFactory
|
| + // and each created It2MeHost object. This is currently possible because
|
| + // |policy_service| is a global singleton available from the browser process.
|
| + virtual void set_policy_service(policy::PolicyService* policy_service);
|
| +
|
| 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);
|
| };
|
|
|
|
|