 Chromium Code Reviews
 Chromium Code Reviews Issue 11275178:
  Enforce the RemoteAccessHostRequireCurtain policy on all platforms.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src
    
  
    Issue 11275178:
  Enforce the RemoteAccessHostRequireCurtain policy on all platforms.  (Closed) 
  Base URL: svn://svn.chromium.org/chrome/trunk/src| Index: remoting/host/remoting_me2me_host.cc | 
| diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc | 
| index cdf6962b31ee2a892356f655cbb26b9d5e502811..ad8500a921a8c1f359cd2ac8f1ab842a8a5fd2cf 100644 | 
| --- a/remoting/host/remoting_me2me_host.cc | 
| +++ b/remoting/host/remoting_me2me_host.cc | 
| @@ -243,6 +243,7 @@ class HostProcess | 
| scoped_ptr<CurtainMode> curtain_; | 
| scoped_ptr<CurtainingHostObserver> curtaining_host_observer_; | 
| + bool curtain_required_; | 
| bool restarting_; | 
| bool shutting_down_; | 
| @@ -270,6 +271,7 @@ class HostProcess | 
| HostProcess::HostProcess(scoped_ptr<ChromotingHostContext> context) | 
| : context_(context.Pass()), | 
| allow_nat_traversal_(true), | 
| + curtain_required_(false), | 
| restarting_(false), | 
| shutting_down_(false), | 
| desktop_resizer_(DesktopResizer::Create()), | 
| @@ -710,24 +712,10 @@ bool HostProcess::OnCurtainPolicyUpdate(bool curtain_required) { | 
| // Returns true if the host has to be restarted after this policy update. | 
| DCHECK(context_->network_task_runner()->BelongsToCurrentThread()); | 
| -#if defined(OS_MACOSX) | 
| - if (curtain_required) { | 
| - // If curtain mode is required, then we can't currently support remoting | 
| - // the login screen. This is because we don't curtain the login screen | 
| - // and the current daemon architecture means that the connction is closed | 
| - // immediately after login, leaving the host system uncurtained. | 
| - // | 
| - // TODO(jamiewalch): Fix this once we have implemented the multi-process | 
| - // daemon architecture (crbug.com/134894) | 
| - if (getuid() == 0) { | 
| - Shutdown(kLoginScreenNotSupportedExitCode); | 
| - return false; | 
| - } | 
| - } | 
| -#endif | 
| - if (curtain_->required() != curtain_required) { | 
| + if (curtain_required_ != curtain_required) { | 
| + curtain_required_ = curtain_required; | 
| LOG(INFO) << "Updated curtain policy."; | 
| 
Jamie
2012/11/07 00:27:49
While you're here, it would be useful to log the n
 
Wez
2012/11/07 02:37:32
I'll be following up shortly to add an ignore-poli
 
Wez
2012/11/07 02:37:32
I've update the logging of all the policy values,
 | 
| - curtain_->set_required(curtain_required); | 
| + curtaining_host_observer_->SetEnableCurtaining(curtain_required_); | 
| 
rmsousa
2012/11/07 00:19:16
Note that the RestartHost immediately after this w
 
Wez
2012/11/07 02:37:32
It'll curtain the local console iff there's a conn
 | 
| return true; | 
| } | 
| return false; | 
| @@ -815,10 +803,10 @@ void HostProcess::StartHost() { | 
| new ResizingHostObserver(desktop_resizer_.get(), host_)); | 
| #endif | 
| - // Curtain mode is currently broken on Mac (the only supported platform), | 
| - // so it's disabled until we've had time to fully investigate. | 
| - // curtaining_host_observer_.reset(new CurtainingHostObserver( | 
| - // curtain_.get(), host_)); | 
| + // Create a host observer to enable/disable curtain mode as clients connect | 
| + // and disconnect. | 
| + curtaining_host_observer_.reset(new CurtainingHostObserver( | 
| 
rmsousa
2012/11/07 00:19:16
You need to SetEnableCurtaining again in the new o
 
Wez
2012/11/07 02:37:32
Done.
 | 
| + curtain_.get(), host_)); | 
| if (host_user_interface_.get()) { | 
| host_user_interface_->Start( |