summaryrefslogtreecommitdiffstats
path: root/base/message_loop.h
diff options
context:
space:
mode:
authoralexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-16 21:28:11 +0000
committeralexeypa@chromium.org <alexeypa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-08-16 21:28:11 +0000
commit773632872a2738c85cb4e29fdd300de02316fe26 (patch)
tree596d5a382f08e1577a660f1c43eb590a9150b3b6 /base/message_loop.h
parent3a49e50f07b102c5fa01da330ad8ce17fd3535c9 (diff)
downloadchromium_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.h3
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: