Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Unified Diff: remoting/host/remoting_me2me_host.cc

Issue 11275178: Enforce the RemoteAccessHostRequireCurtain policy on all platforms. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(
« remoting/host/curtaining_host_observer.cc ('K') | « remoting/host/curtaining_host_observer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698