summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-01 18:37:57 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-01 18:37:57 +0000
commitae1340e26fcb5fe89c69068dc0d544f1cdc1018e (patch)
tree418759be5271f375780f04cf526919b8c488e704
parent2b06edc7b18d7ba031c9ae86e547bd75a10720c9 (diff)
downloadchromium_src-ae1340e26fcb5fe89c69068dc0d544f1cdc1018e.zip
chromium_src-ae1340e26fcb5fe89c69068dc0d544f1cdc1018e.tar.gz
chromium_src-ae1340e26fcb5fe89c69068dc0d544f1cdc1018e.tar.bz2
Add some troubleshooting checks to get a better idea for why we're seeing failures with loading LPC.
BUG=352350 Review URL: https://codereview.chromium.org/219193013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260911 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--third_party/libjingle/overrides/init_webrtc.cc17
1 files changed, 17 insertions, 0 deletions
diff --git a/third_party/libjingle/overrides/init_webrtc.cc b/third_party/libjingle/overrides/init_webrtc.cc
index b25f31a..eda9858 100644
--- a/third_party/libjingle/overrides/init_webrtc.cc
+++ b/third_party/libjingle/overrides/init_webrtc.cc
@@ -6,6 +6,7 @@
#include "base/command_line.h"
#include "base/debug/trace_event.h"
+#include "base/file_util.h"
#include "base/files/file_path.h"
#include "base/native_library.h"
#include "base/path_service.h"
@@ -82,6 +83,22 @@ bool InitializeWebRtcModule() {
base::NativeLibraryLoadError error;
static base::NativeLibrary lib = base::LoadNativeLibrary(path, &error);
+#if defined(OS_WIN)
+ // We've been seeing problems on Windows with loading the DLL and we're
+ // not sure exactly why. It could be that AV programs are quarantining the
+ // file or disallowing loading the DLL. To get a better picture of the errors
+ // we're checking these specific error codes.
+ if (error.code == ERROR_MOD_NOT_FOUND) {
+ // It's possible that we get this error due to failure to load other
+ // dependencies, so check first that libpeerconnection actually exists.
+ CHECK(base::PathExists(path)); // libpeerconnection itself is missing.
+ CHECK(lib); // If we hit this, a dependency is missing.
+ } else if (error.code == ERROR_ACCESS_DENIED) {
+ CHECK(lib); // AV blocking access?
+ }
+#endif
+
+ // Catch-all error handler for all other sorts of errors.
CHECK(lib) << error.ToString();
InitializeModuleFunction initialize_module =