CEF4Delphi

Descripción

CEF4Delphi es un proyecto de código abierto creado por Salvador Díaz Fau para incluir navegadores basados en Chromium dentro de aplicaciones realizadas con Delphi.

Introducción

CEF4Delphi se basa en DCEF3, hecho por Henri Gourvest, el cual está adaptado para la rama 2623 de CEF3. Para poder añadir pestañas de navegador web basadas en Chromium en BriskBard es necesario usar la última rama estable de CEF3 y disponer de actualizaciones frecuentemente. Dado que DCEF3 no se ha actualizado en los últimos meses se decidió crear un proyecto nuevo.

El objetivo principal de CEF4Delphi es simplificar en lo posible el trabajo necesario para adaptarlo a las nuevas versiones de CEF3. Para ello fue necesario tomar las siguientes medidas :

  • Se han eliminado redundancias. Ahora solo hay un componente TChromium.
  • Se han borrado los comentarios copiados del código de CEF3. Los comentarios en CEF3 se actualizan con la misma frecuencia que el código y se pueden sustituir por una referencia al archivo de CEF3 donde se encuentran.
  • Se ha repartido el código en muchas más unidades de menor tamaño.
  • Se han añadido comentarios con las equivalencias de clases y tipos entre CEF4Delphi y CEF3.

La última versión de CEF4Delphi usa la rama 2987 de CEF3. En concreto se usa la versión CEF 3.2987.1601.gf035232 que incluye Chromium 57.0.2987.133 y como resultado de ello, se necesita Windows 7 o superior para hacerlo funcionar.

CEF4Delphi se desarrolló y probado en Delphi 10 Seattle y se ha probado en Delphi 7, Delphi XE y Delphi 10.1.

Instalación

Para compilar e instalar CEF4Delphi en la última versión de Delphi hay que seguir los siguientes pasos :

  1. Descargar la última versión de CEF4Delphi desde GitHub.
  2. Descomprimir CEF4Delphi en un directorio. Asegúrese de que su usuario tiene privilegios de escritura en ese directorio.
  3. Ejecutar Delphi.
  4. Añadir el directorio source de CEF4Delphi al library path en Delphi dentro del menú Tools->Options. En la ventana Options hay que hacer clic sobre Environment Options->Delphi Options->Library, seleccionar la plataforma de 32 o 64 bits y añadir el directorio en Library path.
  5. Abrir el archivo CEF4Delphi.dproj desde Delphi.
  6. Hacer clic con el botón derecho del ratón sobre el icono de CEF4Delphi.bpl dentro del panel del Project manager y seleccionar la opción Build.
  7. Hacer clic con el botón derecho del ratón sobre el icono de CEF4Delphi.bpl dentro del panel del Project manager y seleccionar la opción Install.

Para compilar e instalar CEF4Delphi en Delphi 7 hay que seguir los siguientes pasos :

  1. Descargar la última versión de CEF4Delphi desde GitHub.
  2. Descomprimir CEF4Delphi en un directorio. Asegúrese de que su usuario tiene privilegios de escritura en ese directorio y cree un subdirectorio llamado CEF4Delphi\source\dcu.
  3. Ejecutar Delphi.
  4. Añadir el directorio source de CEF4Delphi al library path en Delphi dentro del menú Tools->Environment options. En la ventana Environment Options hay que seleccionar la pestaña Library y añadir el directorio en Library path.
  5. Abrir el archivo CEF4Delphi_D7.dpk desde Delphi.
  6. Hacer clic en el botón Compile.
  7. Hacer clic en el botón Install.

Uso

Antes de usar CEF4Delphi por primera vez es muy recomendable leer la información sobre CEF3 y los documentos sobre el diseño de Chromium.

La documentacion de la API de CEF3 está disponible en magpcss.org y hay muchísima información sobre el uso de CEF3 en los comentarios de su código fuente.

Como se puede ver en la documentación, es necesario configurar CEF3 antes de que TApplication se inicie. En CEF4Delphi esta inicialización es más sencilla gracias a la clase TCefApplication.

Una aplicación Delphi suele tener este código en su archivo DPR :

program Project1; uses Vcl.Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end.

Para incluir CEF4Delphi solo habría que añadir las unidades WinApi.Windows y uCEFApplication a la cláusula uses, crear la variable global GlobalCEFApp, llamar a GlobalCEFApp.StartMainProcess y por último liberar GlobalCEFApp. TambiĆ©n hay que añadir la directiva SetPEFlags.

program Project1; uses WinApi.Windows, Vcl.Forms, uCEFApplication, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} {$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} begin GlobalCEFApp := TCefApplication.Create; if GlobalCEFApp.StartMainProcess then begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm1, Form1); Application.Run; end; GlobalCEFApp.Free; end.

Si desea una configuración diferente de CEF3 solo hay que modificar las propiedades de GlobalCEFApp antes de GlobalCEFApp.StartMainProcess. Casi todas sus propiedades se corresponden con los campos de cef_settings_t.

Otras propiedades en TCefApplication :

  • Cookies : Directorio donde se almacenan las cookies del navegador web.
  • DeleteCache : Dar valor de True si se desea borrar la cache durante la inicialización.
  • DeleteCookies : Dar valor de True si se desea borrar las cookies durante la inicialización.
  • FlashEnabled : Dar valor de True si se desea usar la versión de Adobe Flash Player (PPAPI) intalada en el sistema operativo.
  • CheckCEFFiles : Dar valor de True si se desea comprobar la integridad de los archivos de CEF3 durante la inicialización.
  • EnableSpellingService : Dar valor de True si se desea activar el servicio ortográfico de Google.
  • EnableMediaStream : Dar valor de True si se desea activar retransmisión de audio y video con WebRTC
  • EnableSpeechInput : Dar valor de True si se desea activar la introducción de datos por voz.
  • SmoothScrolling : Dar valor de True para activar la animación de las barras de desplazamiento.
  • FastUnload : Dar valor de True para acelerar el cierre de pestañas y ventanas.
  • DisableSafeBrowsing : Dar valor de True para desactivar varias funciones anti phishing.
  • EnableHighDPISupport : Dar valor de True para poder usar un valor de DPI alto.
  • MuteAudio : Dar valor de True para desactivar todo el audio.

Para añadir parámetros personalizados en la linea de comandos use el procedimiento AddCustomCommandLine con alguno de los argumentos de estas listas : peter.sh, cef_switches.cc.

Si desea usar otro ejecutable para los subprocesos eche un vistazo a la demo SubProcess, configure la propiedad BrowserSubprocessPath de TCefApplication con el nombre del ejecutable y cree un archivo crash_reporter.cfg como se describe aquí.

Posteriormente hay que añadir componentes diferentes dependiendo del tipo de aplicación que se desea crear :

  • Ventana de navegador normal : Añada un TChromium y un TCEFWindowParent al Form donde desea tener el navegador y llame a la función CreateBrowser con la instancia de TCEFWindowParent como su primer parámetro. Alternativamente puede añadir un TChromiumWindow, que es una clase que hereda de TCEFWindowParent y que contiene a un control TChromium. Eche un vistazo a la demos MiniBrowser y SimpleBrowser para saber más detalles.
  • Renderizado fuera de pantalla : Añada un TChromium al Form y llame a la función CreateBrowser sin parámetros. Asegúrese de dar un valor de True GlobalCEFApp.WindowlessRenderingEnabled. Consulte la demo SimpleOSRBrowser para saber más detalles.

Como puede ver en el código fuente, TChromium agrupa las funciones, procedimientos y eventos de :

Otras propiedades y funciones en TChromium que puede considerar interesantes :

  • IncZoomStep, DecZoomStep, ResetZoomStep : Usados para modificar el zoom de la página web.
  • CustomHeaderName, CustomHeaderValue : Usados para enviar cabeceras personalizadas en cada petición.
  • DoNotTrack : Dar valor de True si se desea enviar la cabecera DNT.
  • SendReferrer : Dar valor de True si se desea enviar la cabecera 'referer'.
  • ProxyType, ProxyServer, ProxyPort, ProxyUsername, ProxyPassword, ProxyScriptURL, ProxyByPassList : Configuración del proxy como se describe aquí.

Como todas las aplicaciones CEF3, usted debe copiar los archivos de la distribución binaria de CEF3 al directorio donde se encuentra su aplicación CEF4Delphi. Esos archivos son parte de un paquete llamado 'Standard Distribution' y está disponible en la página de descargas de CEF3.

Una vez que ha descargado y descomprimido el paquete 'Standard Distribution' hecho para la plataforma de windows de su elección, debe copiar los contenidos de los directorios Release y Resources del paquete al directorio donde se encuentre el ejecutable de su aplicación. Aquí tiene una captura de pantalla de la disposición final de los archivos :

Disposición final de los archivos de la distribución binaria de CEF3 junto a la aplicación.
Disposición final de los archivos de la distribución binaria de CEF3 junto a la aplicación.
Se puede apreciar que los archivos cef_sandbox.lib y libcef.lib pueden omitirse.

Es extremadamente importante usar sólamente la versión de los archivos binarios de CEF3 que se especifica en la introducción. CEF3 evoluciona muy rápidamente y se introducen cambios en cada una de sus versiones. Su aplicación podría dar errores si intenta usar una versión no soportada de CEF3 con CEF4Delphi.

Sobre el nombre

CEF4Delphi es solo un numerónimo y se debería interpretar como CEF for Delphi, es decir CEF para Delphi en español. No significa que esté basado en CEF4.

Cómo ayudar

Si desea ayudar en este proyecto puede realizar una donacón pulsando el siguiente botón :

También puede ayudar dando a conocer este proyecto a sus amistades, compartiendo los mensajes de este proyecto en las redes sociales, escribiendo artículos sobre este proyecto en su página web, haciendo sugerencias, informando sobre errores, etc.

Si realiza compras en Internet también puede ayudar usando estos enlaces para sus compras :




Uso de cookies

Por el hecho de navegar en este sitio acepta usar nuestras cookies. Solo verá este mensaje una vez.
Más información
Cerrar