Qué es CefSharp, para qué sirve y soluciones a posibles errores
Es curioso que son muchas las aplicaciones comerciales y gratuitas que hacen uso de CefSharp, pero como para la mayoría son desconocidas, algunos incluso pueden pensar que se trata de un virus o malware. Por todo esto me decidí a escribir este pequeño artículo y aclarar qué es CefSharp, para qué sirve y soluciones a posibles errores.
CefSharp son unas librerías de código abierto compatibles con la plataforma .Net que nos permiten integrar un control de navegador en nuestra aplicación. Dicho de otra forma, es un control que podemos usar en nuestros proyectos y poder integrar un navegador basado en Chromium.
CefSharp se basa en el proyecto CEF (Chromium Embedded Framework) diseñado para el lenguaje C++. Con esta librería conseguimos compatibilidad con proyectos WinForms, WPF y el llamado OffScreen, que es un navegador «headless» (sin interfaz gráfica y con un funcionamiento similar a PhantomJS).
¿Es CefSharp un virus o malware?
La respuesta es no, CefSharp es un SDK para desarrolladores que no supone ningún peligro para nuestro sistema operativo. Las librerías CefSharp son gratuitas y de código abierto, de hecho tienen su propia página en GitHub con el código fuente.
El problema es que algunas aplicaciones maliciosas han empleado estas librerías y puede que algún antivirus lance alguna advertencia. Recomiendo tener especial precaución con aplicaciones que hagan uso de CefSharp y que procedan de un origen desconocido, ya que pueden haber sido diseñadas para robar algún tipo de información (contraseñas, datos bancarios, datos personales, etc).
Tengo una aplicación que usa CefSharp y me muestra un error, ¿qué puedo hacer?
Este apartado está destinado a usuarios de Windows, ya que es donde nos podemos encontrar los errores más comunes de CefSharp. El error más habitual es ver el proceso CefSharp.BrowserSubprocess.exe
en el administrador de tareas, es decir, el proceso permanece en el administrador de tareas aun después de haber cerrado la aplicación. Este no es un error que tenga fácil solución, ya que es un error del desarrollador de la aplicación, lo único que podemos hacer es reportarte el error para que lo solucione.
El resto de errores puede surgir porque faltan algunos de los binarios de CefSharp, que son los que muestro en la siguiente lista:
CefSharp.BrowserSubprocess.exe
CefSharp.BrowserSubprocess.Core.dll
CefSharp.Core.dll
CefSharp.dll
CefSharp.Wpf.dll
CefSharp.WinForms.dll
d3dcompiler_43.dll
d3dcompiler_47.dll
ffmpegsumo.dll
(necesario para la versión 43 y anteriores)libcef.dll
libEGL.dll
libGLESv2.dll
pdf.dll
icudtl.dat
cef.pak
cef_100_percent.pak
cef_200_percent.pak
chrome_elf.dll
(necesario a partir de la versión 55)devtools_resources.pak
locales\\*.pak
natives_blob.bin
(necesario a partir de la versión 43)snapshot_blob.bin
(necesario a partir de la versión 43)
Estos binarios podemos conseguirlos compilando nosotros mismos el código fuente de GitHub con VisualStudio. Además, para el correcto funcionamiento de CefSharp nuestro sistema operativo deberá tener instalados el .NET Framework 4.5.2 y Visual C++ Runtime 2013.