diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2016-05-09 14:22:11 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2016-05-09 15:11:45 +0000 |
commit | 2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c (patch) | |
tree | e75f511546c5fd1a173e87c1f9fb11d7ac8d1af3 /chromium/crypto/openssl_util.cc | |
parent | a4f3d46271c57e8155ba912df46a05559d14726e (diff) | |
download | qtwebengine-chromium-2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c.tar.gz |
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 <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'chromium/crypto/openssl_util.cc')
-rw-r--r-- | chromium/crypto/openssl_util.cc | 54 |
1 files changed, 3 insertions, 51 deletions
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 <openssl/crypto.h> #include <openssl/err.h> -#include <openssl/ssl.h> -#include <openssl/cpu.h> #include <stddef.h> #include <stdint.h> #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 <cpu-features.h> -#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<OpenSSLInitSingleton>>::get(); - } - private: - friend struct base::DefaultSingletonTraits<OpenSSLInitSingleton>; - 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) { |