| Index: remoting/host/wts_session_process_launcher_win.cc
|
| diff --git a/remoting/host/wts_session_process_launcher_win.cc b/remoting/host/wts_session_process_launcher_win.cc
|
| index 645fd03ed227f2aec63b721b953ae7dfd1a89ff4..eced4f5cfa6c4602967bb8b924a5dd1df893b782 100644
|
| --- a/remoting/host/wts_session_process_launcher_win.cc
|
| +++ b/remoting/host/wts_session_process_launcher_win.cc
|
| @@ -19,8 +19,8 @@
|
| #include "base/process_util.h"
|
| #include "base/rand_util.h"
|
| #include "base/string16.h"
|
| +#include "base/stringize_macros.h"
|
| #include "base/stringprintf.h"
|
| -#include "base/utf_string_conversions.h"
|
| #include "base/win/scoped_handle.h"
|
| #include "base/win/scoped_process_information.h"
|
| #include "ipc/ipc_channel_proxy.h"
|
| @@ -46,10 +46,10 @@ const int kMaxLaunchDelaySeconds = 60;
|
| const int kMinLaunchDelaySeconds = 1;
|
|
|
| // Name of the default session desktop.
|
| -const char kDefaultDesktopName[] = "winsta0\\default";
|
| +char16 kDefaultDesktopName[] = TO_L_STRING("winsta0\\default");
|
|
|
| // Match the pipe name prefix used by Chrome IPC channels.
|
| -const char kChromePipeNamePrefix[] = "\\\\.\\pipe\\chrome.";
|
| +const char16 kChromePipeNamePrefix[] = TO_L_STRING("\\\\.\\pipe\\chrome.");
|
|
|
| // The IPC channel name is passed to the host in the command line.
|
| const char kChromotingIpcSwitchName[] = "chromoting-ipc";
|
| @@ -60,8 +60,8 @@ const char* kCopiedSwitchNames[] = { "auth-config", "host-config" };
|
|
|
| // The security descriptor of the Chromoting IPC channel. It gives full access
|
| // to LocalSystem and denies access by anyone else.
|
| -const char kChromotingChannelSecurityDescriptor[] =
|
| - "O:SY" "G:SY" "D:(A;;GA;;;SY)";
|
| +const char16 kChromotingChannelSecurityDescriptor[] =
|
| + TO_L_STRING("O:SYG:SYD:(A;;GA;;;SY)");
|
|
|
| // Takes the process token and makes a copy of it. The returned handle will have
|
| // |desired_access| rights.
|
| @@ -152,7 +152,7 @@ bool CreateSessionToken(uint32 session_id,
|
| // Generates random channel ID.
|
| // N.B. Stolen from src/content/common/child_process_host_impl.cc
|
| string16 GenerateRandomChannelId(void* instance) {
|
| - return base::StringPrintf(ASCIIToUTF16("%d.%p.%d").c_str(),
|
| + return base::StringPrintf(TO_L_STRING("%d.%p.%d"),
|
| base::GetCurrentProcId(), instance,
|
| base::RandInt(0, std::numeric_limits<int>::max()));
|
| }
|
| @@ -168,7 +168,7 @@ bool CreatePipeForIpcChannel(void* instance,
|
| security_attributes.bInheritHandle = FALSE;
|
|
|
| ULONG security_descriptor_length = 0;
|
| - if (!ConvertStringSecurityDescriptorToSecurityDescriptorA(
|
| + if (!ConvertStringSecurityDescriptorToSecurityDescriptorW(
|
| kChromotingChannelSecurityDescriptor,
|
| SDDL_REVISION_1,
|
| reinterpret_cast<PSECURITY_DESCRIPTOR*>(
|
| @@ -183,7 +183,7 @@ bool CreatePipeForIpcChannel(void* instance,
|
| string16 channel_name(GenerateRandomChannelId(instance));
|
|
|
| // Convert it to the pipe name.
|
| - string16 pipe_name(ASCIIToUTF16(kChromePipeNamePrefix));
|
| + string16 pipe_name(kChromePipeNamePrefix);
|
| pipe_name.append(channel_name);
|
|
|
| // Create the server end of the pipe. This code should match the code in
|
| @@ -217,14 +217,13 @@ bool LaunchProcessAsUser(const FilePath& binary,
|
| HANDLE user_token,
|
| base::Process* process_out) {
|
| string16 application_name = binary.value();
|
| - string16 desktop = ASCIIToUTF16(kDefaultDesktopName);
|
|
|
| base::win::ScopedProcessInformation process_info;
|
| STARTUPINFOW startup_info;
|
|
|
| memset(&startup_info, 0, sizeof(startup_info));
|
| startup_info.cb = sizeof(startup_info);
|
| - startup_info.lpDesktop = const_cast<LPWSTR>(desktop.c_str());
|
| + startup_info.lpDesktop = kDefaultDesktopName;
|
|
|
| if (!CreateProcessAsUserW(user_token,
|
| application_name.c_str(),
|
|
|