private void ScanPathForTranscoders(string sPath) { try { if (Directory.Exists(sPath)) { Evidence securityEvidence = Assembly.GetExecutingAssembly().Evidence; bool boolPref = SDVPApplication.Prefs.GetBoolPref("SDVP.debug.extensions.verbose", false); if (boolPref) { //SDVPApplication.Log.LogFormat("Searching for Transcoders under {0}", new object[] { sPath }); } foreach (FileInfo info in new DirectoryInfo(sPath).GetFiles()) { if (info.FullName.EndsWith(".dll", StringComparison.OrdinalIgnoreCase) && !info.FullName.StartsWith("_", StringComparison.OrdinalIgnoreCase)) { Assembly assembly; if (boolPref) { //SDVPApplication.Log.LogFormat("Looking for Transcoders inside {0}", new object[] { info.FullName.ToString() }); } try { if (Browser.bRunningOnCLRv4) { assembly = Assembly.LoadFrom(info.FullName); } else { assembly = Assembly.LoadFrom(info.FullName, securityEvidence); } } catch (Exception exception) { SDVPApplication.LogAddonException(exception, "Failed to load " + info.FullName); continue; } this.ScanAssemblyForTranscoders(assembly); } } } } catch (Exception exception2) { SDVPApplication.DoNotifyUser(string.Format("[Web Browser] Failure loading Transcoders: {0}", exception2.Message), "Transcoders Load Error"); } }
private static ICertificateProvider LoadOverrideCertProvider() { string stringPref = SDVPApplication.Prefs.GetStringPref("SDVP.certmaker.assembly", Browser.GetPath("App") + "CertMaker.dll"); if (File.Exists(stringPref)) { Assembly assembly; try { assembly = Assembly.LoadFrom(stringPref); if (!Utilities.SDVPMeetsVersionRequirement(assembly, "Certificate Maker")) { return(null); } } catch (Exception exception) { SDVPApplication.LogAddonException(exception, "Failed to load CertMaker" + stringPref); return(null); } foreach (Type type in assembly.GetExportedTypes()) { if ((!type.IsAbstract && type.IsPublic) && (type.IsClass && typeof(ICertificateProvider).IsAssignableFrom(type))) { try { return((ICertificateProvider)Activator.CreateInstance(type)); } catch (Exception exception2) { SDVPApplication.DoNotifyUser(string.Format("[Web Browser] Failure loading {0} CertMaker from {1}: {2}\n\n{3}\n\n{4}", new object[] { type.Name, assembly.CodeBase, exception2.Message, exception2.StackTrace, exception2.InnerException }), "Load Error"); } } } } return(null); }