Move some basic early process init into Service Manager

Introduces the beginnings of an embedder API for the Service Manager,
consisting of a single entry point (service_manager::Main) which in
turn delegates to its embedder for arbitrary initialization and
process execution logic.

This is the first of several incremental steps to remove content from
the generic process startup flow. Future patches will rework various
main entry points to go through service_manager::Main directly, rather
than going ContentMain -> service_manager::Main.

This will also allow us to introduce new process types which run the
Service Manager or arbitrary services directly without touching any
part of content.

BUG=654986

Review-Url: https://codereview.chromium.org/2613653003
Cr-Original-Commit-Position: refs/heads/master@{#458252}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: c6026704ff452d402924ce2d88b0168baf227b1e
This commit is contained in:
rockot 2017-03-20 17:29:35 -07:00 коммит произвёл Commit bot
Родитель 5db5d6b060
Коммит 068550ee95
1 изменённых файлов: 62 добавлений и 60 удалений

Просмотреть файл

@ -14,83 +14,85 @@
// newlines. See http://dev.chromium.org/developers/testing/leaksanitizer
// for the instructions on writing suppressions.
char kLSanDefaultSuppressions[] =
// Intentional leak used as sanity test for Valgrind/memcheck.
"leak:base::ToolsSanityTest_MemoryLeak_Test::TestBody\n"
// Intentional leak used as sanity test for Valgrind/memcheck.
"leak:base::ToolsSanityTest_MemoryLeak_Test::TestBody\n"
// ================ Leaks in third-party code ================
// ================ Leaks in third-party code ================
// False positives in libfontconfig. http://crbug.com/39050
"leak:libfontconfig\n"
// eglibc-2.19/string/strdup.c creates false positive leak errors because of the
// same reason as crbug.com/39050. The leak error stack trace, when unwind on
// malloc, includes a call to libfontconfig. But the default stack trace is too
// short in leak sanitizer bot to make the libfontconfig suppression works.
// http://crbug.com/605286
"leak:__strdup\n"
// False positives in libfontconfig. http://crbug.com/39050
"leak:libfontconfig\n"
// eglibc-2.19/string/strdup.c creates false positive leak errors because of
// the same reason as crbug.com/39050. The leak error stack trace, when
// unwind on malloc, includes a call to libfontconfig. But the default stack
// trace is too short in leak sanitizer bot to make the libfontconfig
// suppression works. http://crbug.com/605286
"leak:__strdup\n"
// Leaks in Nvidia's libGL.
"leak:libGL.so\n"
// Leaks in Nvidia's libGL.
"leak:libGL.so\n"
// TODO(eugenis): revisit NSS suppressions after the switch to BoringSSL
// NSS leaks in CertDatabaseNSSTest tests. http://crbug.com/51988
"leak:net::NSSCertDatabase::ImportFromPKCS12\n"
"leak:net::NSSCertDatabase::ListCerts\n"
"leak:net::NSSCertDatabase::DeleteCertAndKey\n"
"leak:crypto::ScopedTestNSSDB::ScopedTestNSSDB\n"
// Another leak due to not shutting down NSS properly. http://crbug.com/124445
"leak:error_get_my_stack\n"
// The NSS suppressions above will not fire when the fast stack unwinder is
// used, because it can't unwind through NSS libraries. Apply blanket
// suppressions for now.
"leak:libnssutil3\n"
"leak:libnspr4\n"
"leak:libnss3\n"
"leak:libplds4\n"
"leak:libnssckbi\n"
// TODO(eugenis): revisit NSS suppressions after the switch to BoringSSL
// NSS leaks in CertDatabaseNSSTest tests. http://crbug.com/51988
"leak:net::NSSCertDatabase::ImportFromPKCS12\n"
"leak:net::NSSCertDatabase::ListCerts\n"
"leak:net::NSSCertDatabase::DeleteCertAndKey\n"
"leak:crypto::ScopedTestNSSDB::ScopedTestNSSDB\n"
// Another leak due to not shutting down NSS properly.
// http://crbug.com/124445
"leak:error_get_my_stack\n"
// The NSS suppressions above will not fire when the fast stack unwinder is
// used, because it can't unwind through NSS libraries. Apply blanket
// suppressions for now.
"leak:libnssutil3\n"
"leak:libnspr4\n"
"leak:libnss3\n"
"leak:libplds4\n"
"leak:libnssckbi\n"
// XRandR has several one time leaks.
"leak:libxrandr\n"
// XRandR has several one time leaks.
"leak:libxrandr\n"
// xrandr leak. http://crbug.com/119677
"leak:XRRFindDisplay\n"
// xrandr leak. http://crbug.com/119677
"leak:XRRFindDisplay\n"
// http://crbug.com/431213, http://crbug.com/416665
"leak:gin/object_template_builder.h\n"
// http://crbug.com/431213, http://crbug.com/416665
"leak:gin/object_template_builder.h\n"
// Leaks in swrast_dri.so. http://crbug.com/540042
"leak:swrast_dri.so\n"
// Leaks in swrast_dri.so. http://crbug.com/540042
"leak:swrast_dri.so\n"
// Leak in glibc's gconv caused by fopen(..., "r,ccs=UNICODE")
"leak:__gconv_lookup_cache\n"
// Leak in glibc's gconv caused by fopen(..., "r,ccs=UNICODE")
"leak:__gconv_lookup_cache\n"
// ================ Leaks in Chromium code ================
// PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS.
// Instead, commits that introduce memory leaks should be reverted. Suppressing
// the leak is acceptable in some cases when reverting is impossible, i.e. when
// enabling leak detection for the first time for a test target with
// pre-existing leaks.
// ================ Leaks in Chromium code ================
// PLEASE DO NOT ADD SUPPRESSIONS FOR NEW LEAKS.
// Instead, commits that introduce memory leaks should be reverted.
// Suppressing the leak is acceptable in some cases when reverting is
// impossible, i.e. when enabling leak detection for the first time for a
// test target with pre-existing leaks.
// Small test-only leak in ppapi_unittests. http://crbug.com/258113
"leak:ppapi::proxy::PPP_Instance_Private_ProxyTest_PPPInstancePrivate_Test\n"
// Small test-only leak in ppapi_unittests. http://crbug.com/258113
"leak:ppapi::proxy::PPP_Instance_Private_ProxyTest_PPPInstancePrivate_"
"Test\n"
// http://crbug.com/322671
"leak:content::SpeechRecognitionBrowserTest::SetUpOnMainThread\n"
// http://crbug.com/322671
"leak:content::SpeechRecognitionBrowserTest::SetUpOnMainThread\n"
// http://crbug.com/355641
"leak:TrayAccessibilityTest\n"
// http://crbug.com/355641
"leak:TrayAccessibilityTest\n"
// http://crbug.com/354644
"leak:CertificateViewerUITest::ShowModalCertificateViewer\n"
// http://crbug.com/354644
"leak:CertificateViewerUITest::ShowModalCertificateViewer\n"
// http://crbug.com/356306
"leak:content::SetProcessTitleFromCommandLine\n"
// http://crbug.com/356306
"leak:service_manager::SetProcessTitleFromCommandLine\n"
// http://crbug.com/601435
"leak:mojo/edk/js/handle.h\n"
// http://crbug.com/601435
"leak:mojo/edk/js/handle.h\n"
// PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS.
// PLEASE READ ABOVE BEFORE ADDING NEW SUPPRESSIONS.
// End of suppressions.
; // Please keep this semicolon.
// End of suppressions.
; // Please keep this semicolon.
#endif // LEAK_SANITIZER