diff options
author | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-16 21:28:11 +0000 |
---|---|---|
committer | alexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-16 21:28:11 +0000 |
commit | 773632872a2738c85cb4e29fdd300de02316fe26 (patch) | |
tree | 596d5a382f08e1577a660f1c43eb590a9150b3b6 /base/message_loop.h | |
parent | 3a49e50f07b102c5fa01da330ad8ce17fd3535c9 (diff) | |
download | chromium_src-773632872a2738c85cb4e29fdd300de02316fe26.zip chromium_src-773632872a2738c85cb4e29fdd300de02316fe26.tar.gz chromium_src-773632872a2738c85cb4e29fdd300de02316fe26.tar.bz2 |
[Chromoting] Launch the host process elevated via ShellExecuteEx().
The host process is launched in in two steps now. An instance of remote_service.exe is launched in a user session (CreateProcessAsUser) and then it launches the host requesting elevation (ShellExecuteEx). This is needed because Windows 8 refuses to inject Alt+Tab unless uiAccess='true' is specified in the manifest, which in its turn requires ShellExecuteEx() to be used.
Lifetime of launched processes is controlled by assigning them to a job object.
Message loop changes are required to be able to process job object notifications on the I/O message loop.
BUG=135217
Review URL: https://chromiumcodereview.appspot.com/10831271
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151973 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_loop.h')
-rw-r--r-- | base/message_loop.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/base/message_loop.h b/base/message_loop.h index 2ff963f..b54ca85 100644 --- a/base/message_loop.h +++ b/base/message_loop.h @@ -631,7 +631,8 @@ class BASE_EXPORT MessageLoopForIO : public MessageLoop { #if defined(OS_WIN) // Please see MessagePumpWin for definitions of these methods. - void RegisterIOHandler(HANDLE file_handle, IOHandler* handler); + void RegisterIOHandler(HANDLE file, IOHandler* handler); + bool RegisterJobObject(HANDLE job, IOHandler* handler); bool WaitForIOCompletion(DWORD timeout, IOHandler* filter); protected: |