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 | 4 |
5 #include <stdlib.h> | 5 #include <stdlib.h> |
6 | 6 |
7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
8 #include <dwmapi.h> | 8 #include <dwmapi.h> |
9 #include <windows.h> | 9 #include <windows.h> |
10 #endif | 10 #endif |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 #endif | 49 #endif |
50 | 50 |
51 #if defined(OS_LINUX) | 51 #if defined(OS_LINUX) |
52 #include "content/public/common/sandbox_init.h" | 52 #include "content/public/common/sandbox_init.h" |
53 #endif | 53 #endif |
54 | 54 |
55 #if defined(OS_MACOSX) | 55 #if defined(OS_MACOSX) |
56 #include "base/message_loop/message_pump_mac.h" | 56 #include "base/message_loop/message_pump_mac.h" |
57 #endif | 57 #endif |
58 | 58 |
| 59 #if defined(ADDRESS_SANITIZER) |
| 60 #include <sanitizer/asan_interface.h> |
| 61 #endif |
| 62 |
59 const int kGpuTimeout = 10000; | 63 const int kGpuTimeout = 10000; |
60 | 64 |
61 namespace content { | 65 namespace content { |
62 | 66 |
63 namespace { | 67 namespace { |
64 | 68 |
65 bool WarmUpSandbox(const CommandLine& command_line); | 69 bool WarmUpSandbox(const CommandLine& command_line); |
66 #if defined(OS_LINUX) | 70 #if defined(OS_LINUX) |
67 bool StartSandboxLinux(const gpu::GPUInfo&, GpuWatchdogThread*, bool); | 71 bool StartSandboxLinux(const gpu::GPUInfo&, GpuWatchdogThread*, bool); |
68 #elif defined(OS_WIN) | 72 #elif defined(OS_WIN) |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
437 | 441 |
438 bool res = false; | 442 bool res = false; |
439 | 443 |
440 WarmUpSandboxNvidia(gpu_info, should_initialize_gl_context); | 444 WarmUpSandboxNvidia(gpu_info, should_initialize_gl_context); |
441 | 445 |
442 if (watchdog_thread) { | 446 if (watchdog_thread) { |
443 // LinuxSandbox needs to be able to ensure that the thread | 447 // LinuxSandbox needs to be able to ensure that the thread |
444 // has really been stopped. | 448 // has really been stopped. |
445 LinuxSandbox::StopThread(watchdog_thread); | 449 LinuxSandbox::StopThread(watchdog_thread); |
446 } | 450 } |
| 451 |
| 452 #if defined(ADDRESS_SANITIZER) |
| 453 LinuxSandbox* linux_sandbox = LinuxSandbox::GetInstance(); |
| 454 linux_sandbox->sanitizer_args()->coverage_sandboxed = 1; |
| 455 linux_sandbox->sanitizer_args()->coverage_fd = -1; |
| 456 linux_sandbox->sanitizer_args()->coverage_max_block_size = 0; |
| 457 #endif |
| 458 |
447 // LinuxSandbox::InitializeSandbox() must always be called | 459 // LinuxSandbox::InitializeSandbox() must always be called |
448 // with only one thread. | 460 // with only one thread. |
449 res = LinuxSandbox::InitializeSandbox(); | 461 res = LinuxSandbox::InitializeSandbox(); |
450 if (watchdog_thread) { | 462 if (watchdog_thread) { |
451 watchdog_thread->Start(); | 463 watchdog_thread->Start(); |
452 } | 464 } |
453 | 465 |
454 return res; | 466 return res; |
455 } | 467 } |
456 #endif // defined(OS_LINUX) | 468 #endif // defined(OS_LINUX) |
(...skipping 11 matching lines...) Expand all Loading... |
468 return true; | 480 return true; |
469 } | 481 } |
470 | 482 |
471 return false; | 483 return false; |
472 } | 484 } |
473 #endif // defined(OS_WIN) | 485 #endif // defined(OS_WIN) |
474 | 486 |
475 } // namespace. | 487 } // namespace. |
476 | 488 |
477 } // namespace content | 489 } // namespace content |
OLD | NEW |