15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "win8/delegate_execute/delegate_execute_util.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/strings/string_util.h" 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace delegate_execute { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)CommandLine CommandLineFromParameters(const wchar_t* params) { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommandLine command_line(CommandLine::NO_PROGRAM); 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (params) { 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16 command_string(L"noprogram.exe "); 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command_string.append(params); 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) command_line.ParseFromString(command_string); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) command_line.SetProgram(base::FilePath()); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return command_line; 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)CommandLine MakeChromeCommandLine(const base::FilePath& chrome_exe, 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const CommandLine& params, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const string16& argument) { 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommandLine chrome_cmd(params); 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome_cmd.SetProgram(chrome_exe); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!argument.empty()) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome_cmd.AppendArgNative(argument); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return chrome_cmd; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)string16 ParametersFromSwitch(const char* a_switch) { 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (!a_switch) 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return string16(); 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) CommandLine cmd_line(CommandLine::NO_PROGRAM); 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) cmd_line.AppendSwitch(a_switch); 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) string16 command_string(cmd_line.GetCommandLineString()); 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) TrimWhitespace(command_string, TRIM_ALL, &command_string); 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return command_string; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace delegate_execute 51