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 PROCESS_INFORMATION temp_process_info = {}; | 490 base::win::ScopedProcessInformation proc_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 &temp_process_info); | 494 proc_info.Receive()); |
495 if (ret) { | 495 if (ret) { |
496 base::win::ScopedProcessInformation proc_info(temp_process_info); | |
497 AtlTrace("Process id is %d\n", proc_info.process_id()); | 496 AtlTrace("Process id is %d\n", proc_info.process_id()); |
498 AllowSetForegroundWindow(proc_info.process_id()); | 497 AllowSetForegroundWindow(proc_info.process_id()); |
499 } else { | 498 } else { |
500 AtlTrace("Process launch failed, error %d\n", ::GetLastError()); | 499 AtlTrace("Process launch failed, error %d\n", ::GetLastError()); |
501 } | 500 } |
502 | 501 |
503 return S_OK; | 502 return S_OK; |
504 } | 503 } |
505 | 504 |
506 EC_HOST_UI_MODE CommandExecuteImpl::GetLaunchMode() { | 505 EC_HOST_UI_MODE CommandExecuteImpl::GetLaunchMode() { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
561 AtlTrace("Invalid registry launch mode value %u\n", reg_value); | 560 AtlTrace("Invalid registry launch mode value %u\n", reg_value); |
562 launch_mode = ECHUIM_DESKTOP; | 561 launch_mode = ECHUIM_DESKTOP; |
563 } else { | 562 } else { |
564 launch_mode = static_cast<EC_HOST_UI_MODE>(reg_value); | 563 launch_mode = static_cast<EC_HOST_UI_MODE>(reg_value); |
565 AtlTrace("Launch mode forced by registry to %s\n", modes[launch_mode]); | 564 AtlTrace("Launch mode forced by registry to %s\n", modes[launch_mode]); |
566 } | 565 } |
567 | 566 |
568 launch_mode_determined = true; | 567 launch_mode_determined = true; |
569 return launch_mode; | 568 return launch_mode; |
570 } | 569 } |
OLD | NEW |