Chromium Code Reviews| Index: ios/showcase/core/main.mm |
| diff --git a/ios/showcase/core/main.mm b/ios/showcase/core/main.mm |
| index ca3097d83ce30c1838e70e8b6893c18f1e8bc587..13b3ea1eeb111c8ec077de616f0580789454b26f 100644 |
| --- a/ios/showcase/core/main.mm |
| +++ b/ios/showcase/core/main.mm |
| @@ -3,6 +3,9 @@ |
| // found in the LICENSE file. |
| #import <UIKit/UIKit.h> |
| + |
| +#include "base/at_exit.h" |
| +#include "ios/chrome/app/startup/ios_chrome_main.h" |
| #import "ios/showcase/core/app_delegate.h" |
| #if !defined(__has_feature) || !__has_feature(objc_arc) |
| @@ -10,6 +13,29 @@ |
| #endif |
| int main(int argc, char* argv[]) { |
| + // Create the AtExitManager for the application before the crash controller |
| + // is started. This needs to be stack allocated and live for the lifetime of |
|
marq (ping after 24h)
2017/01/24 09:49:07
None of this is needed; we should keep the Showcas
sczs
2017/01/24 18:32:21
Removed everything but the AtExitManager, without
|
| + // the app. |
| + base::AtExitManager at_exit; |
| + |
| + IOSChromeMain::InitStartTime(); |
| + |
| + // Pre-launch actions are in their own autorelease pool so they get cleaned |
| + // up before the main app starts. |
| + @autoreleasepool { |
| + NSUserDefaults* standardDefaults = [NSUserDefaults standardUserDefaults]; |
| + |
| + // Set NSUserDefaults keys to force pseudo-RTL if needed. |
| + if ([standardDefaults boolForKey:@"EnablePseudoRTL"]) { |
| + NSDictionary* pseudoDict = @{ @"YES" : @"AppleTextDirection" }; |
| + [standardDefaults registerDefaults:pseudoDict]; |
| + } |
| + |
| + // Always ignore SIGPIPE. Chrome should always check the return value of |
| + // write() instead of relying on this signal. |
| + CHECK_NE(SIG_ERR, signal(SIGPIPE, SIG_IGN)); |
| + } |
| + |
| @autoreleasepool { |
| return UIApplicationMain(argc, argv, nil, |
| NSStringFromClass([AppDelegate class])); |