OLD | NEW |
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 // Implementation of the CommandExecuteImpl class which implements the | 4 // Implementation of the CommandExecuteImpl class which implements the |
5 // IExecuteCommand and related interfaces for handling ShellExecute based | 5 // IExecuteCommand and related interfaces for handling ShellExecute based |
6 // launches of the Chrome browser. | 6 // launches of the Chrome browser. |
7 | 7 |
8 #include "win8/delegate_execute/command_execute_impl.h" | 8 #include "win8/delegate_execute/command_execute_impl.h" |
9 | 9 |
10 #include <shlguid.h> | 10 #include <shlguid.h> |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 break; | 480 break; |
481 } | 481 } |
482 | 482 |
483 CommandLine chrome( | 483 CommandLine chrome( |
484 delegate_execute::MakeChromeCommandLine(chrome_exe_, parameters_, | 484 delegate_execute::MakeChromeCommandLine(chrome_exe_, parameters_, |
485 display_name)); | 485 display_name)); |
486 string16 command_line(chrome.GetCommandLineString()); | 486 string16 command_line(chrome.GetCommandLineString()); |
487 | 487 |
488 AtlTrace("Formatted command line is %ls\n", command_line.c_str()); | 488 AtlTrace("Formatted command line is %ls\n", command_line.c_str()); |
489 | 489 |
490 base::win::ScopedProcessInformation proc_info; | 490 PROCESS_INFORMATION temp_process_info = {}; |
491 BOOL ret = CreateProcess(chrome_exe_.value().c_str(), | 491 BOOL ret = CreateProcess(chrome_exe_.value().c_str(), |
492 const_cast<LPWSTR>(command_line.c_str()), | 492 const_cast<LPWSTR>(command_line.c_str()), |
493 NULL, NULL, FALSE, 0, NULL, NULL, &start_info_, | 493 NULL, NULL, FALSE, 0, NULL, NULL, &start_info_, |
494 proc_info.Receive()); | 494 &temp_process_info); |
495 if (ret) { | 495 if (ret) { |
| 496 base::win::ScopedProcessInformation proc_info(temp_process_info); |
496 AtlTrace("Process id is %d\n", proc_info.process_id()); | 497 AtlTrace("Process id is %d\n", proc_info.process_id()); |
497 AllowSetForegroundWindow(proc_info.process_id()); | 498 AllowSetForegroundWindow(proc_info.process_id()); |
498 } else { | 499 } else { |
499 AtlTrace("Process launch failed, error %d\n", ::GetLastError()); | 500 AtlTrace("Process launch failed, error %d\n", ::GetLastError()); |
500 } | 501 } |
501 | 502 |
502 return S_OK; | 503 return S_OK; |
503 } | 504 } |
504 | 505 |
505 EC_HOST_UI_MODE CommandExecuteImpl::GetLaunchMode() { | 506 EC_HOST_UI_MODE CommandExecuteImpl::GetLaunchMode() { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 AtlTrace("Invalid registry launch mode value %u\n", reg_value); | 561 AtlTrace("Invalid registry launch mode value %u\n", reg_value); |
561 launch_mode = ECHUIM_DESKTOP; | 562 launch_mode = ECHUIM_DESKTOP; |
562 } else { | 563 } else { |
563 launch_mode = static_cast<EC_HOST_UI_MODE>(reg_value); | 564 launch_mode = static_cast<EC_HOST_UI_MODE>(reg_value); |
564 AtlTrace("Launch mode forced by registry to %s\n", modes[launch_mode]); | 565 AtlTrace("Launch mode forced by registry to %s\n", modes[launch_mode]); |
565 } | 566 } |
566 | 567 |
567 launch_mode_determined = true; | 568 launch_mode_determined = true; |
568 return launch_mode; | 569 return launch_mode; |
569 } | 570 } |
OLD | NEW |