diff options
author | nsylvain@chromium.org <nsylvain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 16:05:56 +0000 |
---|---|---|
committer | nsylvain@chromium.org <nsylvain@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-20 16:05:56 +0000 |
commit | ff608eb386a2662bbe076a2a59b21eb90bc34532 (patch) | |
tree | 63c82289115c4b64d6d444816aab4f895f43917c /sandbox/src/target_process.cc | |
parent | 1e3af029048d55a3b7c39100683121d71c8ea673 (diff) | |
download | chromium_src-ff608eb386a2662bbe076a2a59b21eb90bc34532.zip chromium_src-ff608eb386a2662bbe076a2a59b21eb90bc34532.tar.gz chromium_src-ff608eb386a2662bbe076a2a59b21eb90bc34532.tar.bz2 |
Add support for alternate window station.
TEST: Start chrome, make sure it loads pages, then user process explorer to make sure the WindowStation handle name is not the same as the browser process.
BUG:10996
Review URL: http://codereview.chromium.org/113190
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16483 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sandbox/src/target_process.cc')
-rw-r--r-- | sandbox/src/target_process.cc | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/sandbox/src/target_process.cc b/sandbox/src/target_process.cc index 2d039d9..5bd0a8c 100644 --- a/sandbox/src/target_process.cc +++ b/sandbox/src/target_process.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -83,7 +83,6 @@ TargetProcess::TargetProcess(HANDLE initial_token, HANDLE lockdown_token, exe_name_(NULL), sandbox_process_(NULL), sandbox_thread_(NULL), - desktop_handle_(NULL), sandbox_process_id_(0) { } @@ -113,8 +112,6 @@ TargetProcess::~TargetProcess() { ::CloseHandle(sandbox_process_); if (shared_section_) ::CloseHandle(shared_section_); - if (desktop_handle_) - ::CloseDesktop(desktop_handle_); free(exe_name_); } @@ -130,15 +127,12 @@ DWORD TargetProcess::Create(const wchar_t* exe_path, scoped_ptr_malloc<wchar_t> cmd_line(_wcsdup(command_line)); scoped_ptr_malloc<wchar_t> desktop_name(desktop ? _wcsdup(desktop) : NULL); + // Start the target process suspended. const DWORD flags = CREATE_SUSPENDED | CREATE_BREAKAWAY_FROM_JOB | CREATE_UNICODE_ENVIRONMENT | DETACHED_PROCESS; - // Start the target process suspended STARTUPINFO startup_info = {sizeof(STARTUPINFO)}; if (desktop) { - // Ensure that the desktop exists - desktop_handle_ = ::CreateDesktop(desktop_name.get(), NULL, NULL, 0, - DESKTOP_CREATEWINDOW, NULL); startup_info.lpDesktop = desktop_name.get(); } |