diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-01 18:37:57 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-01 18:37:57 +0000 |
commit | ae1340e26fcb5fe89c69068dc0d544f1cdc1018e (patch) | |
tree | 418759be5271f375780f04cf526919b8c488e704 | |
parent | 2b06edc7b18d7ba031c9ae86e547bd75a10720c9 (diff) | |
download | chromium_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.cc | 17 |
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 = |