GeckoPort version2/es

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

English (en) español (es)

En breve

   GeckoPort es la versión para Lazarus/Free Pascal del SDK Gecko de Takanori Ito's Gecko para Delphi, incluyendo el componente TGeckoBrowser. La versión 2 se basa en archivo de inclusión autogenerados desde los archivos IDL del SDK de Gecko. Para este propósito se ha utilizado idltopas. De esta manera es más fácil seguir el rápido ciclo de liberación de versiones de Gecko ahora que los desarrolladores de Gecko no mantienen la compatibilidad hacia atrás. Puede encontrar más información sobre la versión antigua de GeckoPort aquí.

   Las fuentes actuales están basadas en Gecko 9, ya que Gecko 10 tiene un error que impide que sea embebido.

Pantallazos

Ejemplo de la plicación GBrowser usando Win32

Licencia

   MPL 1.1

Instalación

   Hay un paquete de fpmake para GeckoPort en el repositorio de Free Pascal. Para instalar el paquete de GeckoPort en su sistema:

  • Asegurate de tener fppkg correctamente configurado. Comprueba tambien si la ruta de instalación de Lazarus está correcta.
  • Instala el paquete fpmake de gecko para Free Pascal. Escribe el siguiente comando en la línea de ordenes:
 fppkg install gecko
  • Cuando la instalación se complete (re)arranca Lazarus
  • En Lazarus, ve a Pauete | Instalar/Desinstalar Paquetes
  • Selecciona GeckoComponents en la lista de 'No instalar' paquetes y haz clic en 'Instalar selección'.
  • Clic 'Guardar y reconstruir el IDE' para reconstruir y relanzar Lazarus.

   Para compilar una aplicación de ejemplo:

  • Ve a Archivo | Abrir, selecciont ChromeWin.lpi o GBrowser.lpi (ambos en la carpeta SampleApps).
  • Activa Ejecutar | Ejecutar (F9) para compilar y ejecutar la aplicación de ejemplo.

   Ten en cuenta que necesitas tener las librerías de Gecko instaladas antes de poder ejecutar una de las aplicaciones de ejemplo. Si es necesario, utiliza un instalador desde aquí

Desarrollo

   Puedes bajar las fuentes de GeckoPort del Lazarus-ccr usando Subversion:

svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/geckoport/version2 [ruta al directorio local]

   Para instalar esta versión. ve a directorio local y usa

fppkg install -o -gl

. Los parámetros '-o -gl' son para incluir información de depuración.

Para Hacer (To Do)

Win32

   Las aplicaiones de ejemplo ChromeWin y GBrowser funcionan igual que las de Delphi.

   Actualmente, el código busca xulrunner en el siguiente orden:

  • EL ParamStr(1). Esto es el primer parámetro de línea de ordenes. Esto es temporal para porpósito de pruebas y puede ser quitao en el futuro.
  • La aplicación se encuentra en la misma ubicación que xulrunner.
  • xulrunner está localizado en un directorio por debajo de la ubicación del ejecutable de la plicación. El directorio debe llamarse "xulrunner".
  • Busca en el registro el GRE "Gecko Runtime Environment".
  • Busca en el registro una instalación de Firefox.

   Con Free Pascal 2.5.1 y 2.4.x en Windows, debes deshabilitar las excepciones de coma flotante, tan pronto como sea posible en tu programa. Añadir la unidad Math en la cláusula uses y agrega la siguiente instrucción al principio de tu programa:

 SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]);

   Ten en cuenta que esto deshabilitarás excepciones de coma flotante en todo el código, no sólo para las librerías de Gecko. Mira los archivos .dpr de las aplicaciones de ejemplo cómo añadir este código.

   El xulrunner de Firefox funciona, comprobado con Firefox 3.6.12, pero el ejecutable de la aplicación debe estar en la misma carpeta que Firefox o la plicación se colgará.

Carbon

   Una ventana nativa debe ser pasada al componente de explorador al iniciarlo. En OS X, debe ser una ventana Cocoa, de lo contrario la interfaz Carbon no funcionará.

Cocoa

   Aunque la interfaz Cocoa en la actualidad sólo soporta TForm y uno o dos controles, la aplicación de ejemplo ChromeWin puede funcionar con Cocoa ya que utiliza sólo TForm.

   Ten en cuenta que el paquete GeckoPort utiliza ahora la nueva interfaz Cocoa basada en Objective Pascal en lugar de la antigua basda en PasCocoa. Para compilar la interfaz Cocoa basada en ObjC necesitarás una versión de la FPC, que incluya soporte para Objective Pascal (por ejemplo, la versión 2.6 o superior, o compilado a partir de la rama actual de FPC SVN)

   También tendrás que establecer Cocoa como el tipo Widget LCL para la aplicación, ya que por defecto es de Carbon. O puedes compilar ChromeWin.lpi con lazbuild y especificar --ws=cocoa. Mira el archivo lb-cw-cocoa.sh para un ejemplo.

   Para ejecutar la aplicación de ejemplo ChromeWin, es necesario establecer DYLD_LIBRARY_PATH para que la librería XUL pueda cargar las otras librerías de Gecko de las que depende. Una manera simple de hacer esto es lanzar la aplicacióna ChromeWin mediante el guión cw-mac.sh. Ten en cuenta que este guión supone que tienes instalado el marco de trabajo de XUL.

   La aplicación de ejemplo GBrowser no funciona a causa del estado actual incompleto de la interfaz Cocoa.

GTK2

   En Linux, asegúrate de establecer la variable de entorno LD_LIBRARY_PATH al directorio xulrunner antes de ejecutar una de las aplicaciones de ejemplo. Por ejemplo

 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/xulrunner-1.9.1.4

   El código de detección de Gecko en Linux obtiene la variable de entorno LD_LIBRARY_PATH y busca un XULRunner adecuado en las rutas de la misma.

   Actualmente las aplicaciones de ejemplo funciona en Linux/Ubuntu 9.04 con Lazarus 0.9.29 y FPC 2.5.1 con algunos problemas de dibujo que espero se resuelvan pronto y que parecen estar relacionados con la interfaz de GTK2.

   Por favor, informa del éxito o del fracaso de las pruebas al responsable de GeckoPort:

 "José Mejuto" joshyfun (at) gmail (dot) com (Responsable actual)
 MacPgmr (at) fastermac (dot) net (Responsable original)

Ver también