Index: content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
diff --git a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
index 03abc3501ca88906a7dafc35308a0355e02f36ba..ee7d5fa7faa879d922baa03dbf2a3fb1b9bdcc41 100644 |
--- a/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
+++ b/content/renderer/media/webrtc/peer_connection_dependency_factory.cc |
@@ -46,6 +46,7 @@ |
#include "content/renderer/render_frame_impl.h" |
#include "content/renderer/render_thread_impl.h" |
#include "content/renderer/render_view_impl.h" |
+#include "crypto/openssl_util.h" |
#include "jingle/glue/thread_wrapper.h" |
#include "media/base/media_permission.h" |
#include "media/renderers/gpu_video_accelerator_factories.h" |
@@ -360,6 +361,12 @@ void PeerConnectionDependencyFactory::CreatePeerConnectionFactory() { |
CHECK(worker_thread_); |
// Init SSL, which will be needed by PeerConnection. |
+ // |
+ // TODO(davidben): BoringSSL must be initialized by Chromium code. If the |
+ // initialization requirement is removed or when different libraries are |
+ // allowed to call CRYPTO_library_init concurrently, remove this line and |
+ // initialize within WebRTC. See https://crbug.com/542879. |
+ crypto::EnsureOpenSSLInit(); |
if (!rtc::InitializeSSL()) { |
LOG(ERROR) << "Failed on InitializeSSL."; |
NOTREACHED(); |