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 "content/public/app/content_main_runner.h" | 5 #include "content/public/app/content_main_runner.h" |
6 | 6 |
7 #include <stdlib.h> | 7 #include <stdlib.h> |
8 | 8 |
9 #include "base/allocator/allocator_extension.h" | 9 #include "base/allocator/allocator_extension.h" |
10 #include "base/at_exit.h" | 10 #include "base/at_exit.h" |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 #if defined(OS_LINUX) || defined(OS_OPENBSD) | 550 #if defined(OS_LINUX) || defined(OS_OPENBSD) |
551 g_fds->Set(kCrashDumpSignal, | 551 g_fds->Set(kCrashDumpSignal, |
552 kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); | 552 kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); |
553 #endif | 553 #endif |
554 | 554 |
555 #endif // !OS_WIN | 555 #endif // !OS_WIN |
556 | 556 |
557 is_initialized_ = true; | 557 is_initialized_ = true; |
558 delegate_ = params.delegate; | 558 delegate_ = params.delegate; |
559 | 559 |
560 base::EnableTerminationOnHeapCorruption(); | 560 if (!params.disable_termination_on_heap_corruption) |
| 561 base::EnableTerminationOnHeapCorruption(); |
561 base::EnableTerminationOnOutOfMemory(); | 562 base::EnableTerminationOnOutOfMemory(); |
562 | 563 |
563 // The exit manager is in charge of calling the dtors of singleton objects. | 564 // The exit manager is in charge of calling the dtors of singleton objects. |
564 // On Android, AtExitManager is set up when library is loaded. | 565 // On Android, AtExitManager is set up when library is loaded. |
565 // On iOS, it's set up in main(), which can't call directly through to here. | 566 // On iOS, it's set up in main(), which can't call directly through to here. |
566 // A consequence of this is that you can't use the ctor/dtor-based | 567 // A consequence of this is that you can't use the ctor/dtor-based |
567 // TRACE_EVENT methods on Linux or iOS builds till after we set this up. | 568 // TRACE_EVENT methods on Linux or iOS builds till after we set this up. |
568 #if !defined(OS_ANDROID) && !defined(OS_IOS) | 569 #if !defined(OS_ANDROID) && !defined(OS_IOS) |
569 if (!ui_task_) { | 570 if (!ui_task_) { |
570 // When running browser tests, don't create a second AtExitManager as that | 571 // When running browser tests, don't create a second AtExitManager as that |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
821 | 822 |
822 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl); | 823 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl); |
823 }; | 824 }; |
824 | 825 |
825 // static | 826 // static |
826 ContentMainRunner* ContentMainRunner::Create() { | 827 ContentMainRunner* ContentMainRunner::Create() { |
827 return new ContentMainRunnerImpl(); | 828 return new ContentMainRunnerImpl(); |
828 } | 829 } |
829 | 830 |
830 } // namespace content | 831 } // namespace content |
OLD | NEW |