unit uCEFPreferenceRegistrar; {$IFDEF FPC} {$MODE OBJFPC}{$H+} {$ENDIF} {$I cef.inc} {$IFNDEF TARGET_64BITS}{$ALIGN ON}{$ENDIF} {$MINENUMSIZE 4} interface uses uCEFBaseScopedWrapper, uCEFTypes, uCEFInterfaces; type /// /// Class that manages custom preference registrations. /// /// /// CEF source file: /include/capi/cef_preference_capi.h (cef_preference_registrar_t) /// TCefPreferenceRegistrarRef = class(TCEFBaseScopedWrapperRef) public /// /// Register a preference with the specified |name| and |default_value|. To /// avoid conflicts with built-in preferences the |name| value should contain /// an application-specific prefix followed by a period (e.g. "myapp.value"). /// The contents of |default_value| will be copied. The data type for the /// preference will be inferred from |default_value|'s type and cannot be /// changed after registration. Returns true (1) on success. Returns false (0) /// if |name| is already registered or if |default_value| has an invalid type. /// This function must be called from within the scope of the /// ICefBrowserProcessHandler.OnRegisterCustomPreferences callback. /// function AddPreference(const name: ustring; const default_value: ICefValue): Boolean; end; implementation uses uCEFMiscFunctions; function TCefPreferenceRegistrarRef.AddPreference(const name : ustring; const default_value : ICefValue): Boolean; var TempName : TCefString; begin TempName := CefString(name); Result := PCefPreferenceRegistrar(FData)^.add_preference(PCefPreferenceRegistrar(FData), @TempName, CefGetData(default_value)) <> 0; end; end.