Roll src/third_party/WebKit 6b63e20:35e1984 (svn 201060:201061)
[chromium-blink-merge.git] / mandoline / services / core_services / main.cc
blobe9d36ba4dafbb8467396035c31d55c4de4bc01d1
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mandoline/services/core_services/core_services_application_delegate.h"
6 #include "mojo/application/public/cpp/application_runner.h"
7 #include "third_party/mojo/src/mojo/public/c/system/main.h"
9 // TODO(erg): Much of this will be the same between mojo applications. Maybe we
10 // could centralize this code?
11 #if defined(OS_LINUX) && !defined(OS_ANDROID)
12 #include "base/rand_util.h"
13 #include "base/sys_info.h"
14 #include "third_party/icu/source/i18n/unicode/timezone.h"
16 // TODO(erg): Much of this was coppied from zygote_main_linux.cc
17 extern "C" {
18 void __attribute__((visibility("default"))) MojoSandboxWarm() {
19 base::RandUint64();
20 base::SysInfo::AmountOfPhysicalMemory();
21 base::SysInfo::MaxSharedMemorySize();
22 base::SysInfo::NumberOfProcessors();
24 // ICU DateFormat class (used in base/time_format.cc) needs to get the
25 // Olson timezone ID by accessing the zoneinfo files on disk. After
26 // TimeZone::createDefault is called once here, the timezone ID is
27 // cached and there's no more need to access the file system.
28 scoped_ptr<icu::TimeZone> zone(icu::TimeZone::createDefault());
30 // TODO(erg): Perform OpenSSL warmup; it wants access to /dev/urandom.
33 #endif // defined(OS_LINUX) && !defined(OS_ANDROID)
35 MojoResult MojoMain(MojoHandle shell_handle) {
36 mojo::ApplicationRunner runner(
37 new core_services::CoreServicesApplicationDelegate);
38 return runner.Run(shell_handle);