From 2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Mon, 9 May 2016 14:22:11 +0200 Subject: BASELINE: Update Chromium to 51.0.2704.41 Also adds in all smaller components by reversing logic for exclusion. Change-Id: Ibf90b506e7da088ea2f65dcf23f2b0992c504422 Reviewed-by: Joerg Bornemann --- chromium/crypto/openssl_util.cc | 54 +++-------------------------------------- 1 file changed, 3 insertions(+), 51 deletions(-) (limited to 'chromium/crypto/openssl_util.cc') diff --git a/chromium/crypto/openssl_util.cc b/chromium/crypto/openssl_util.cc index 48ec3e2e393..28355d68fe0 100644 --- a/chromium/crypto/openssl_util.cc +++ b/chromium/crypto/openssl_util.cc @@ -4,67 +4,18 @@ #include "crypto/openssl_util.h" +#include #include -#include -#include #include #include #include "base/logging.h" -#include "base/macros.h" -#include "base/memory/singleton.h" #include "base/strings/string_piece.h" -#include "build/build_config.h" - -#if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) -#include -#include "base/cpu.h" -#endif namespace crypto { namespace { -// Singleton for initializing and cleaning up the OpenSSL library. -class OpenSSLInitSingleton { - public: - static OpenSSLInitSingleton* GetInstance() { - // We allow the SSL environment to leak for multiple reasons: - // - it is used from a non-joinable worker thread that is not stopped on - // shutdown, hence may still be using OpenSSL library after the AtExit - // runner has completed. - // - There are other OpenSSL related singletons (e.g. the client socket - // context) who's cleanup depends on the global environment here, but - // we can't control the order the AtExit handlers will run in so - // allowing the global environment to leak at least ensures it is - // available for those other singletons to reliably cleanup. - return base::Singleton< - OpenSSLInitSingleton, - base::LeakySingletonTraits>::get(); - } - private: - friend struct base::DefaultSingletonTraits; - OpenSSLInitSingleton() { -#if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL) - const bool has_neon = - (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0; - // CRYPTO_set_NEON_capable is called before |SSL_library_init| because this - // stops BoringSSL from probing for NEON support via SIGILL in the case - // that getauxval isn't present. - CRYPTO_set_NEON_capable(has_neon); - // See https://code.google.com/p/chromium/issues/detail?id=341598 - base::CPU cpu; - CRYPTO_set_NEON_functional(!cpu.has_broken_neon()); -#endif - - SSL_library_init(); - } - - ~OpenSSLInitSingleton() {} - - DISALLOW_COPY_AND_ASSIGN(OpenSSLInitSingleton); -}; - // Callback routine for OpenSSL to print error messages. |str| is a // NULL-terminated string of length |len| containing diagnostic information // such as the library, function and reason for the error, the file and line @@ -82,7 +33,8 @@ int OpenSSLErrorCallback(const char* str, size_t len, void* context) { } // namespace void EnsureOpenSSLInit() { - (void)OpenSSLInitSingleton::GetInstance(); + // CRYPTO_library_init may be safely called concurrently. + CRYPTO_library_init(); } void ClearOpenSSLERRStack(const tracked_objects::Location& location) { -- cgit v1.2.1