TCEFApplication y TCEFApplicationCore

TCEFApplicationCore se usa para simplificar la inicialización y finalización de CEF.

TCEFApplication inhereda de TCEFApplicationCore y se creó para solucionar un problema con los subprocesos de CEF y MS Office.

La mayor parte de las demostraciones inicializan una variable global llamada GlobalCEFApp usando TCEFApplication pero las que usan un ejecutable diferente para los subprocesos utilizan TCEFApplicationCore en los subprocesos.

Normalmente GlobalCEFApp se crea antes que la ventana principal de la aplicación y se destruye después de que todos las ventanas se hayan cerrado. Cuando una aplicación usa un ejecutable diferente para los subprocesos se puede crear GlobalCEFApp en cualquier momento.

Casi todas las propiedades, eventos y métodos en TCEFApplicationCore se corresponden con métodos y llamadas de estas clases de CEF : CefApp, CefBrowserProcessHandler, CefRenderProcessHandler, CefResourceBundleHandler y CefLoadHandler.

Algunas propiedades se usan para asignar valores a la configuración de CEF y para añadir algunos argumentos de líneas de comandos a CEF cuando se inicializa. Esto significa que esas propiedades deben asignarse previamente a la inicialización de CEF y que todos los cambios posteriores se ignorarán.

Los argumentos de líneas de comandos de CEF se pueden utilizar para activar o desactivar muchas características de Chromium disponibles como flags de configuración en dicho navegador.

Procedimientos y funciones en TCEFApplicationCore

procedure TCEFApplicationCore.AddCustomCommandLine(const aCommandLine : string; const aValue : string = '');

Usado para añadir cualquier argumentos de líneas de comandos que no esté disponible como propiedad de TCEFApplicationCore.

function TCEFApplicationCore.StartMainProcess : boolean;

Usado para inicializar CEF en el proceso principal del navegador. En caso de que CEF esté configurado para usar el mismo ejecutable para todos los procesos entonces todos los procesos deben llamar a esta función.

CEF solo se puede inicializar una vez por proceso. Esta es una característica de CEF y no se puede evitar.

function TCEFApplicationCore.StartSubProcess : boolean;

Usado para inicializar CEF en los subprocesos. Esta función solo se puede utilizar por los subprocesos cuando CEF está configurado para usar un ejecutable diferente para los subprocesos.

procedure TCEFApplicationCore.InitLibLocationFromArgs;

Este procedimiento solo está disponible en MacOS para leer algunos datos de configuración desde los argumentos de la línea de comandos.

procedure TCEFApplicationCore.DoMessageLoopWork;

Este procedimiento se usa para realizar una sola iteración del bucle de mensajes de CEF cuando el bucle de mensajes multi-hilo está desactivado y el surtidor de mensajes externo está activado.

Lea los comentarios en el código sobre cef_do_message_loop_work para saber más detalles.

procedure TCEFApplicationCore.RunMessageLoop;

Este procedimiento reemplaza al bulce de mensajes principal en la aplicación cuando el bucle multi-hilo de mensajes y el surtidor de mensajes externo estan desactivados.

Lea los comentarios en el código sobre cef_run_message_loop para saber más detalles.

procedure TCEFApplicationCore.QuitMessageLoop;

Este procedimiento se usa para detener el bucle de mensajes iniciado por RunMessageLoop cuando el bucle multi-hilo de mensajes y el surtidor de mensajes externo estan desactivados.

Lea los comentarios en el código sobre cef_quit_message_loop para saber más detalles.

procedure TCEFApplicationCore.UpdateDeviceScaleFactor;

Este procedimiento se usa para actualizar el valor de la propiedad device scale factor (factor de escala del dispositivo) en esta clase. Este valor solo se usa en modo OSR.

procedure TCEFApplicationCore.Internal_*

Todos los procedimientos que comienzan por Internal_ se utilizan únicamente por CEF handlers y no se deben utilizar por las aplicaciones.

Propiedades usadas para rellenar TCEFSettings en TCEFApplicationCore

Las siguientes propiedades se usan para rellenar el registro TCefSettings cuando se inicializa CEF y deberían asignarse antes de las llamadas a StartMainProcess/StartSubProcess.

Lea los comentarios en el código sobre cef_settings_t para abotener más información sobre cada una de ellas.

  • AcceptLanguageList
  • ApplicationClientID
  • BackgroundColor
  • BrowserSubprocessPath
  • Cache
  • ChromeRuntime
  • CommandLineArgsDisabled
  • CookieableSchemesList
  • CookieableSchemesExcludeDefaults
  • ExternalMessagePump
  • FrameworkDirPath
  • IgnoreCertificateErrors
  • JavaScriptFlags
  • Locale
  • LocalesDirPath
  • LogFile
  • LogSeverity
  • MainBundlePath
  • MultiThreadedMessageLoop
  • NoSandbox
  • PackLoadingDisabled
  • PersistSessionCookies
  • PersistUserPreferences
  • RemoteDebuggingPort
  • ResourcesDirPath
  • RootCache
  • UncaughtExceptionStackSize
  • UserAgent
  • UserAgentProduct
  • UserDataPath
  • WindowlessRenderingEnabled

Propiedades usadas para añadir argumentos de líneas de comandos de CEF en TCEFApplicationCore

Las siguientes propiedades añaden a CEF algunos de los argumentos de líneas de comandos más populares cuando se inicializa y deberían asignarse antes de las llamadas a StartMainProcess/StartSubProcess.

Los argumentos de la línea de comandos pueden cambiar con cada versión de Chromium.

Estos enlaces muestran la lista actualizada de argumentos :

Estos son los argumentos equivalentes para las propiedades :

AllowFileAccessFromFiles--allow-file-access-from-files
AllowRunningInsecureContent--allow-running-insecure-content
AllowUniversalAccessFromFileUrls--allow-universal-access-from-files
AutoplayPolicy--autoplay-policy
BlinkSettings--blink-settings
DefaultEncoding--default-encoding
DevToolsProtocolLogFile--devtools-protocol-log-file
DisableBackgroundNetworking--disable-background-networking
DisableBlinkFeatures--disable-blink-features
DisableChromeLoginPrompt--disable-chrome-login-prompt
DisableExtensions--disable-extensions
DisableFeatures--disable-features
DisableImageLoading--disable-image-loading
DisableJavascript--disable-javascript
DisableJavascriptAccessClipboard--disable-javascript-access-clipboard
DisableJavascriptCloseWindows--disable-javascript-close-windows
DisableJavascriptDomPaste--disable-javascript-dom-paste
DisableNewBrowserInfoTimeout--disable-new-browser-info-timeout
DisablePDFExtension--disable-pdf-extension
DisablePlugins--disable-plugins
DisableReadingFromCanvas--disable-reading-from-canvas
DisableSafeBrowsing--safebrowsing-disable-auto-update
DisableSiteIsolationTrials--disable-site-isolation-trials
DisableSpellChecking--disable-spell-checking
DisableTabToLinks--disable-tab-to-links
DisableTextAreaResize--disable-text-area-resize
DisableWebSecurity--disable-web-security
DisableZygote--no-zygote
EnableBlinkFeatures--enable-blink-features
EnableFeatures--enable-features
EnableGPU--enable-gpu-plugin
EnableMediaStream--enable-media-stream
EnablePrintPreview--enable-print-preview
EnableProfanityFilter--enable-profanity-filter
EnableSpeechInput--enable-speech-input
EnableUsermediaScreenCapturing--enable-usermedia-screen-capturing
FastUnload--enable-fast-unload
ForcedDeviceScaleFactor--device-scale-factor
ForceFieldTrialParams--force-fieldtrial-params
ForceFieldTrials--force-fieldtrials
HyperlinkAuditing--no-pings
ImageShrinkStandaloneToFit--image-shrink-standalone-to-fit
MetricsRecordingOnly--metrics-recording-only
MuteAudio--mute-audio
OverrideSpellCheckLang--override-spell-check-lang
PluginPolicy--plugin-policy
SingleProcess--single-process
SitePerProcess--site-per-process
SmoothScrolling--enable-smooth-scrolling
TouchEvents--touch-events
UseFakeUIForMediaStream--use-fake-ui-for-media-stream
UseMockKeyChain--use-mock-keychain

Consulte el código de TcefApplicationCore.AddCustomCommandLineSwitches para saber cómo se traduce cada propiedad en uno o más argumentos.

Propiedades personalizadas en TCEFApplicationCore

ApiHashCommitLlama a cef_api_hash para obtener el hash del commit.
ApiHashPlatformLlama a cef_api_hash para obtener el hash de la platforma.
ApiHashUniversalLlama a cef_api_hash para obtener el hash universal.
AvailableSystemMemoryCalcula la memoria disponible en Windows.
CheckCEFFilesComprueba si los archivos binarios de CEF están presentes y la versión de la DLL.
ChildProcessesCountDevuelve el número de subprocesos de CEF ejecutandose en ese momento.
ChromeBuildDevuelve el valor build de la información de versión de Chromium.
ChromeElfPathDevuelve la ruta a chrome_elf.dll.
ChromeMajorVerDevuelve el valor major de la información de versión de Chromium.
ChromeMinorVerDevuelve el valor minor de la información de versión de Chromium.
ChromeReleaseDevuelve el valor release de la información de versión de Chromium.
ChromeVersionDevuelve la versión completa de Chromium.
DeleteCacheUsado para borrar todos los archivos de la cache antes de que se inicialice CEF.
DeleteCookiesUsado para borrar todas las cookies antes de que se inicialice CEF.
DeviceScaleFactorDevuelve el factor de escala del dispositivo usado en modo OSR.
EnableHighDPISupportUsado para soportar monitores con DPI alto. Llama a cef_enable_highdpi_support cuando se inicializa CEF.
GlobalContextInitializedTiene un valor de True cuabdo el contexto global está inicializado y la aplicación puede comenzar a crear navegadores web.
LastErrorMessageÚltimo mensaje de error que normalmente se muestra cuando CEF encuentra un problema en la inicialización.
LibCefPathRuta a libcef.dll o libcef.so
LibCefVersionInformación completa de la versión de libcef.
LibLoadedTiene un valor de True cuando TCEFApplicationCore ha cargado los archivos de CEF.
LocalesRequiredLista de archivos locale que se comprobarán con CheckCEFFiles.
LogProcessInfoAñade información al registro de depuración cuando se ha cargado CEF.
MissingBinariesExceptionElevar una excepción cuando la comprobación de los archivos de CEF falla.
MissingLibFilesLista de archivos ausentes de CEF.
MustCreateBrowserProcessHandlerForzar la creación de ICefBrowserProcessHandler.
MustCreateLoadHandlerForzar la creación de ICefLoadHandler.
MustCreateRenderProcessHandlerForzar la creación de ICefRenderProcessHandler.
MustCreateResourceBundleHandlerForzar la creación de ICefResourceBundleHandler.
MustFreeLibraryAsignar un valor de True para liberar el manejador de la librería cuando se destruye TCEFApplicationCore.
OsmodalLoopLas aplicaciones asignan un valor True a esta propiedad cuando reciben un mensaje WM_ENTERMENULOOP y asignan un valor False cuando reciben un mensaje WM_EXITMENULOOP.
ProcessTypeTipo de proceso de CEF que se está ejecutando en ese momento.
ReRaiseExceptionsAsignar un valor de True para elevar todas las excepciones.
SetCurrentDirUsado para asignar el directorio actual cuando se carga CEF. Esto es necesario is la aplicación se ejecuta desde una aplicación diferente.
ShowMessageDlgAsignar un valor de True cuando se necesita mostrar una ventana con showmessage para mostrar los mensajes de error.
StatusDevuelve el estado de inicialización de TCEFApplicationCore.
SystemMemoryLoadCarga de memoria en Windows.
TotalSystemMemoryMemoria de sistema total en Windows.
UsedMemoryMemoria usada por todos los procesos de CEF.
WidevinePathRuta al plugin Widevine CDM.
WindowsSandboxInfoPuntero a la información del sandbox. En la actualidad no se usa en Delphi y Lazarus.
XDisplayPuntero al XDisplay en Linux.

Eventos de ICefApp en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefApp.

OnRegCustomSchemesSe corresponde con CefApp.OnRegisterCustomSchemes. Da la oportunidad de registrar esquemas de URL personalizados.

Eventos de ICefBrowserProcessHandler en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefBrowserProcessHandler.

OnContextInitializedEjecutado en el hilo UI del proceso del navegador inmediatamente después de la inicialización del contexto.
OnBeforeChildProcessLaunchEjecutado antes de lanzar procesos hijo.
OnScheduleMessagePumpWorkEjecutado cuando se ha planificado trabajo para el proceso del navegador.
OnGetDefaultClientDevuelve el cliente por defecto para su uso con un navegador recién creado.

Eventos de ICefBrowserProcessHandler en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefResourceBundleHandler.

OnGetLocalizedStringEjecutado para obtener la traducción para el parámetro string_id especificado.
OnGetDataResourceEjecutado para obtener datos para el resource_id especidicado.
OnGetDataResourceForScaleEjecutado para obtener datos para el resource_id especificado con un scale_factor más cercano.

Eventos de ICefRenderProcessHandler en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefRenderProcessHandler.

Todos estos eventos se ejecutan en el proceso de renderizado únicamente.

OnWebKitInitializedEjecutado después de la inicialización de WebKit.
OnBrowserCreatedEjecutado después de que se cree un navegador.
OnBrowserDestroyedEjecutado antes de la destrucción de un navegador.
OnContextCreatedEjecutado inmediatamente después de la creación de un contexto V8 para un frame.
OnContextReleasedEjecutado inmediatamente antes de la destrucción de un contexto V8 para un frame.
OnUncaughtExceptionEjecutado cuando se producen excepciones globales no capturadas en un frame.
OnFocusedNodeChangedEjecutado cuando un nodo nuevo en el navegador adquiere el foco.
OnProcessMessageReceivedEjecutado cuando se recibe un mensaje desde un proceso diferente.

Eventos de ICefRegisterCDMCallback en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefRegisterCDMCallback.

OnCDMRegistrationCompleteEjecutado cuando se completa el registro CDM.

Eventos de ICefLoadHandler en TCEFApplicationCore

Lea esta página y los comentarios del código en este archivo para conocer todos los detalles de ICefLoadHandler.

Todos estos eventos se ejecutan en el proceso de renderizado únicamente.

OnLoadingStateChangeEjecutado cuando el estado de la carga ha cambiado.
OnLoadStartEjecutado después de haber realizado la petición de navegación y antes de que comience la carga de contenidos en el frame.
OnLoadEndEjecutado cuando el navegador ha terminado de cargar un frame.
OnLoadErrorEjecutado cuando la navegación falla o se ha cancelado.

Propiedades de TCEFApplication

DestroyApplicationObjectDestruye el objeto Application antes de inicializar los subprocesos.
DestroyAppWindowsDestruye los handles creados por el objeto Application antes de inicializar los subprocesos.

Proceddimientos de TCEFApplication

Procedure AddContextInitializedHandler(AHandler: TnotifyEvent)

Añade un gestor que será alertado cuando se inicializa el contexto global. Solo disponible en Lazarus.

Procedure RemoveContextInitializedHandler(AHandler: TnotifyEvent)

Eliminar el gestor de la lista de gestores que son alertados cuando se inicializa el contexto global. Solo disponible en Lazarus.


Copyright © 2021  Todos los derechos reservados.
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