OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 | 4 |
5 #include "chrome/test/chromedriver/chrome_launcher.h" | 5 #include "chrome/test/chromedriver/chrome_launcher.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
352 #endif | 352 #endif |
353 | 353 |
354 #if !defined(OS_WIN) | 354 #if !defined(OS_WIN) |
355 if (!capabilities.log_path.empty()) | 355 if (!capabilities.log_path.empty()) |
356 options.environ["CHROME_LOG_FILE"] = capabilities.log_path; | 356 options.environ["CHROME_LOG_FILE"] = capabilities.log_path; |
357 if (capabilities.detach) | 357 if (capabilities.detach) |
358 options.new_process_group = true; | 358 options.new_process_group = true; |
359 #endif | 359 #endif |
360 | 360 |
361 #if defined(OS_POSIX) | 361 #if defined(OS_POSIX) |
362 base::FileHandleMappingVector no_stderr; | |
363 base::ScopedFD devnull; | 362 base::ScopedFD devnull; |
364 if (!base::CommandLine::ForCurrentProcess()->HasSwitch("verbose")) { | 363 if (!base::CommandLine::ForCurrentProcess()->HasSwitch("verbose")) { |
365 // Redirect stderr to /dev/null, so that Chrome log spew doesn't confuse | 364 // Redirect stderr to /dev/null, so that Chrome log spew doesn't confuse |
366 // users. | 365 // users. |
367 devnull.reset(HANDLE_EINTR(open("/dev/null", O_WRONLY))); | 366 devnull.reset(HANDLE_EINTR(open("/dev/null", O_WRONLY))); |
368 if (!devnull.is_valid()) | 367 if (!devnull.is_valid()) |
369 return Status(kUnknownError, "couldn't open /dev/null"); | 368 return Status(kUnknownError, "couldn't open /dev/null"); |
370 no_stderr.push_back(std::make_pair(devnull.get(), STDERR_FILENO)); | 369 options.fds_to_remap.push_back( |
371 options.fds_to_remap = &no_stderr; | 370 std::make_pair(devnull.get(), STDERR_FILENO)); |
372 } | 371 } |
373 #elif defined(OS_WIN) | 372 #elif defined(OS_WIN) |
374 if (!SwitchToUSKeyboardLayout()) | 373 if (!SwitchToUSKeyboardLayout()) |
375 VLOG(0) << "Cannot switch to US keyboard layout - some keys may be " | 374 VLOG(0) << "Cannot switch to US keyboard layout - some keys may be " |
376 "interpreted incorrectly"; | 375 "interpreted incorrectly"; |
377 #endif | 376 #endif |
378 | 377 |
379 #if defined(OS_WIN) | 378 #if defined(OS_WIN) |
380 std::string command_string = base::WideToUTF8(command.GetCommandLineString()); | 379 std::string command_string = base::WideToUTF8(command.GetCommandLineString()); |
381 #else | 380 #else |
(...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
877 // Write empty "First Run" file, otherwise Chrome will wipe the default | 876 // Write empty "First Run" file, otherwise Chrome will wipe the default |
878 // profile that was written. | 877 // profile that was written. |
879 if (base::WriteFile( | 878 if (base::WriteFile( |
880 user_data_dir.Append(chrome::kFirstRunSentinel), "", 0) != 0) { | 879 user_data_dir.Append(chrome::kFirstRunSentinel), "", 0) != 0) { |
881 return Status(kUnknownError, "failed to write first run file"); | 880 return Status(kUnknownError, "failed to write first run file"); |
882 } | 881 } |
883 return Status(kOk); | 882 return Status(kOk); |
884 } | 883 } |
885 | 884 |
886 } // namespace internal | 885 } // namespace internal |
OLD | NEW |