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

Side by Side Diff: remoting/host/remoting_me2me_host.cc

Issue 11369024: Calling SendSAS() from a service yo make sure that Secure Attention Sequence can be injected even w… (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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // This file implements a standalone host process for Me2Me. 5 // This file implements a standalone host process for Me2Me.
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/at_exit.h" 9 #include "base/at_exit.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 171
172 private: 172 private:
173 #if defined(OS_POSIX) 173 #if defined(OS_POSIX)
174 // Registers a SIGTERM handler on the network thread, to shutdown the host. 174 // Registers a SIGTERM handler on the network thread, to shutdown the host.
175 void ListenForShutdownSignal(); 175 void ListenForShutdownSignal();
176 176
177 // Callback passed to RegisterSignalHandler() to handle SIGTERM events. 177 // Callback passed to RegisterSignalHandler() to handle SIGTERM events.
178 void SigTermHandler(int signal_number); 178 void SigTermHandler(int signal_number);
179 #endif 179 #endif
180 180
181 // Asks the daemon to inject Secure Attention Sequence to the console.
182 void SendSasToConsole();
183
181 void ShutdownHostProcess(); 184 void ShutdownHostProcess();
182 185
183 // Applies the host config, returning true if successful. 186 // Applies the host config, returning true if successful.
184 bool ApplyConfig(scoped_ptr<JsonHostConfig> config); 187 bool ApplyConfig(scoped_ptr<JsonHostConfig> config);
185 188
186 void OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies); 189 void OnPolicyUpdate(scoped_ptr<base::DictionaryValue> policies);
187 bool OnHostDomainPolicyUpdate(const std::string& host_domain); 190 bool OnHostDomainPolicyUpdate(const std::string& host_domain);
188 bool OnUsernamePolicyUpdate(bool username_match_required); 191 bool OnUsernamePolicyUpdate(bool username_match_required);
189 bool OnNatPolicyUpdate(bool nat_traversal_enabled); 192 bool OnNatPolicyUpdate(bool nat_traversal_enabled);
190 bool OnCurtainPolicyUpdate(bool curtain_required); 193 bool OnCurtainPolicyUpdate(bool curtain_required);
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 IpcDesktopEnvironmentFactory* desktop_environment_factory = 501 IpcDesktopEnvironmentFactory* desktop_environment_factory =
499 new IpcDesktopEnvironmentFactory( 502 new IpcDesktopEnvironmentFactory(
500 daemon_channel_.get(), 503 daemon_channel_.get(),
501 context_->input_task_runner(), 504 context_->input_task_runner(),
502 context_->network_task_runner(), 505 context_->network_task_runner(),
503 context_->ui_task_runner()); 506 context_->ui_task_runner());
504 desktop_session_connector_ = desktop_environment_factory; 507 desktop_session_connector_ = desktop_environment_factory;
505 #else // !defined(REMOTING_MULTI_PROCESS) 508 #else // !defined(REMOTING_MULTI_PROCESS)
506 DesktopEnvironmentFactory* desktop_environment_factory = 509 DesktopEnvironmentFactory* desktop_environment_factory =
507 new SessionDesktopEnvironmentFactory( 510 new SessionDesktopEnvironmentFactory(
508 context_->input_task_runner(), context_->ui_task_runner()); 511 context_->input_task_runner(), context_->ui_task_runner(),
512 base::Bind(&HostProcess::SendSasToConsole, base::Unretained(this)));
509 #endif // !defined(REMOTING_MULTI_PROCESS) 513 #endif // !defined(REMOTING_MULTI_PROCESS)
510 514
511 #else // !defined(OS_WIN) 515 #else // !defined(OS_WIN)
512 DesktopEnvironmentFactory* desktop_environment_factory = 516 DesktopEnvironmentFactory* desktop_environment_factory =
513 new DesktopEnvironmentFactory( 517 new DesktopEnvironmentFactory(
514 context_->input_task_runner(), context_->ui_task_runner()); 518 context_->input_task_runner(), context_->ui_task_runner());
515 #endif // !defined(OS_WIN) 519 #endif // !defined(OS_WIN)
516 520
517 desktop_environment_factory_.reset(desktop_environment_factory); 521 desktop_environment_factory_.reset(desktop_environment_factory);
518 522
(...skipping 26 matching lines...) Expand all
545 host_user_interface_->Init(); 549 host_user_interface_->Init();
546 } 550 }
547 551
548 StartWatchingConfigChanges(); 552 StartWatchingConfigChanges();
549 } 553 }
550 554
551 int HostProcess::get_exit_code() const { 555 int HostProcess::get_exit_code() const {
552 return exit_code_; 556 return exit_code_;
553 } 557 }
554 558
559 void HostProcess::SendSasToConsole() {
560 DCHECK(context_->ui_task_runner()->BelongsToCurrentThread());
561
562 if (daemon_channel_)
563 daemon_channel_->Send(new ChromotingNetworkDaemonMsg_SendSasToConsole());
564 }
565
555 void HostProcess::ShutdownHostProcess() { 566 void HostProcess::ShutdownHostProcess() {
556 DCHECK(context_->ui_task_runner()->BelongsToCurrentThread()); 567 DCHECK(context_->ui_task_runner()->BelongsToCurrentThread());
557 568
558 // Tear down resources that use ChromotingHostContext threads. 569 // Tear down resources that use ChromotingHostContext threads.
559 config_watcher_.reset(); 570 config_watcher_.reset();
560 daemon_channel_.reset(); 571 daemon_channel_.reset();
561 desktop_environment_factory_.reset(); 572 desktop_environment_factory_.reset();
562 host_user_interface_.reset(); 573 host_user_interface_.reset();
563 574
564 context_.reset(); 575 context_.reset();
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 user32.GetFunctionPointer("SetProcessDPIAware")); 1017 user32.GetFunctionPointer("SetProcessDPIAware"));
1007 set_process_dpi_aware(); 1018 set_process_dpi_aware();
1008 } 1019 }
1009 1020
1010 // CommandLine::Init() ignores the passed |argc| and |argv| on Windows getting 1021 // CommandLine::Init() ignores the passed |argc| and |argv| on Windows getting
1011 // the command line from GetCommandLineW(), so we can safely pass NULL here. 1022 // the command line from GetCommandLineW(), so we can safely pass NULL here.
1012 return main(0, NULL); 1023 return main(0, NULL);
1013 } 1024 }
1014 1025
1015 #endif // defined(OS_WIN) 1026 #endif // defined(OS_WIN)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698