You've already forked CEF4Delphi
							
							
				mirror of
				https://github.com/salvadordf/CEF4Delphi.git
				synced 2025-10-30 23:07:52 +02:00 
			
		
		
		
	Update to CEF 3.3497.1840.gcd24143
- Added process information in the log file when you compile in DEBUG mode. - Now TCefApplication checks if the subprocess executable is present.
This commit is contained in:
		| @@ -50,7 +50,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, Menus, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| const | ||||
|   MINIBROWSER_VISITDOM_PARTIAL            = WM_APP + $101; | ||||
| @@ -305,7 +306,7 @@ begin | ||||
|   // This adds lots of warnings to the console, specially if you run this inside VirtualBox. | ||||
|   // Remove it if you don't want to use the DOM visitor | ||||
|   GlobalCEFApp.LogFile              := 'debug.log'; | ||||
|   GlobalCEFApp.LogSeverity          := LOGSEVERITY_ERROR; | ||||
|   GlobalCEFApp.LogSeverity          := LOGSEVERITY_INFO; | ||||
| end; | ||||
|  | ||||
| procedure TDOMVisitorFrm.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|   | ||||
| @@ -50,7 +50,7 @@ uses | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, | ||||
|   uCEFConstants, uCEFv8Value; | ||||
|   uCEFConstants, uCEFv8Value, uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSSimpleWindowBindingFrm = class(TForm) | ||||
| @@ -201,14 +201,19 @@ end; | ||||
| procedure TJSSimpleWindowBindingFrm.FormCloseQuery( | ||||
|   Sender: TObject; var CanClose: Boolean); | ||||
| begin | ||||
|   CanClose := FCanClose; | ||||
|  | ||||
|   if not(FClosing) then | ||||
|   if GlobalCEFApp.LibLoaded then | ||||
|     begin | ||||
|       FClosing := True; | ||||
|       Visible  := False; | ||||
|       Chromium1.CloseBrowser(True); | ||||
|     end; | ||||
|       CanClose := FCanClose; | ||||
|  | ||||
|       if not(FClosing) then | ||||
|         begin | ||||
|           FClosing := True; | ||||
|           Visible  := False; | ||||
|           Chromium1.CloseBrowser(True); | ||||
|         end; | ||||
|     end | ||||
|    else | ||||
|     CanClose := True; | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleWindowBindingFrm.FormCreate(Sender: TObject); | ||||
|   | ||||
| @@ -69,6 +69,7 @@ | ||||
|         <DCC_S>false</DCC_S> | ||||
|         <DCC_F>false</DCC_F> | ||||
|         <DCC_K>false</DCC_K> | ||||
|         <DCC_ExeOutput>..\..\bin</DCC_ExeOutput> | ||||
|     </PropertyGroup> | ||||
|     <PropertyGroup Condition="'$(Base_Win32)'!=''"> | ||||
|         <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys> | ||||
| @@ -114,6 +115,9 @@ | ||||
|     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''"> | ||||
|         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes> | ||||
|         <AppEnableHighDPI>true</AppEnableHighDPI> | ||||
|         <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo> | ||||
|         <VerInfo_Locale>1033</VerInfo_Locale> | ||||
|         <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys> | ||||
|     </PropertyGroup> | ||||
|     <PropertyGroup Condition="'$(Cfg_2)'!=''"> | ||||
|         <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols> | ||||
| @@ -164,7 +168,7 @@ | ||||
|                     <Source Name="MainSource">MiniBrowser.dpr</Source> | ||||
|                 </Source> | ||||
|                 <Excluded_Packages> | ||||
|                     <Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\DCLComponentes_UI.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\DCLComponentes_UI.bpl not found</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\19.0\Bpl\DCLComponentes_UI.bpl">DCLComponentes_UI</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dclIPIndyImpl250.bpl">IP Abstraction Indy Implementation Design Time</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dcloffice2k250.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dclofficexp250.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> | ||||
|   | ||||
| @@ -220,6 +220,7 @@ object MiniBrowserFrm: TMiniBrowserFrm | ||||
|     Width = 1179 | ||||
|     Height = 652 | ||||
|     Align = alClient | ||||
|     TabStop = True | ||||
|     TabOrder = 1 | ||||
|   end | ||||
|   object DevTools: TCEFWindowParent | ||||
|   | ||||
| @@ -50,7 +50,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, Menus, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, AppEvnts, ActiveX, ShlObj, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| const | ||||
|   MINIBROWSER_SHOWDEVTOOLS    = WM_APP + $101; | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|     <PathDelim Value="\"/> | ||||
|     <Version Value="10"/> | ||||
|     <BuildModes Active="Default"/> | ||||
|     <Units Count="36"> | ||||
|     <Units Count="38"> | ||||
|       <Unit0> | ||||
|         <Filename Value="SimpleLazarusBrowser.lpr"/> | ||||
|         <IsPartOfProject Value="True"/> | ||||
| @@ -274,13 +274,38 @@ | ||||
|       </Unit34> | ||||
|       <Unit35> | ||||
|         <Filename Value="..\..\source\uCEFLinkedWindowParent.pas"/> | ||||
|         <IsVisibleTab Value="True"/> | ||||
|         <TopLine Value="31"/> | ||||
|         <CursorPos X="28" Y="38"/> | ||||
|         <UsageCount Value="10"/> | ||||
|         <Loaded Value="True"/> | ||||
|       </Unit35> | ||||
|       <Unit36> | ||||
|         <Filename Value="..\..\source\uCEFWriteHandler.pas"/> | ||||
|         <IsVisibleTab Value="True"/> | ||||
|         <EditorIndex Value="1"/> | ||||
|         <TopLine Value="336"/> | ||||
|         <CursorPos Y="358"/> | ||||
|         <UsageCount Value="10"/> | ||||
|         <Loaded Value="True"/> | ||||
|       </Unit36> | ||||
|       <Unit37> | ||||
|         <Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\objpas\math.pp"/> | ||||
|         <EditorIndex Value="2"/> | ||||
|         <TopLine Value="158"/> | ||||
|         <CursorPos X="10" Y="180"/> | ||||
|         <UsageCount Value="10"/> | ||||
|         <Loaded Value="True"/> | ||||
|       </Unit37> | ||||
|     </Units> | ||||
|     <JumpHistory HistoryIndex="-1"/> | ||||
|     <JumpHistory Count="2" HistoryIndex="1"> | ||||
|       <Position1> | ||||
|         <Filename Value="..\..\source\uCEFLinkedWindowParent.pas"/> | ||||
|         <Caret Line="38" Column="28" TopLine="31"/> | ||||
|       </Position1> | ||||
|       <Position2> | ||||
|         <Filename Value="..\..\source\uCEFWriteHandler.pas"/> | ||||
|         <Caret Line="353" Column="19" TopLine="321"/> | ||||
|       </Position2> | ||||
|     </JumpHistory> | ||||
|   </ProjectSession> | ||||
| </CONFIG> | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFChromiumWindow, uCEFTypes, uCEFInterfaces; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFChromiumWindow, uCEFTypes, uCEFInterfaces, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TForm1 = class(TForm) | ||||
| @@ -113,14 +114,19 @@ uses | ||||
|  | ||||
| procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
| begin | ||||
|   CanClose := FCanClose; | ||||
|  | ||||
|   if not(FClosing) then | ||||
|   if GlobalCEFApp.LibLoaded then | ||||
|     begin | ||||
|       FClosing := True; | ||||
|       Visible  := False; | ||||
|       ChromiumWindow1.CloseBrowser(True); | ||||
|     end; | ||||
|       CanClose := FCanClose; | ||||
|  | ||||
|       if not(FClosing) then | ||||
|         begin | ||||
|           FClosing := True; | ||||
|           Visible  := False; | ||||
|           ChromiumWindow1.CloseBrowser(True); | ||||
|         end; | ||||
|     end | ||||
|    else | ||||
|     CanClose := True; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.FormShow(Sender: TObject); | ||||
|   | ||||
| @@ -61,7 +61,7 @@ uses | ||||
| const | ||||
|   CEF_SUPPORTED_VERSION_MAJOR   = 3; | ||||
|   CEF_SUPPORTED_VERSION_MINOR   = 3497; | ||||
|   CEF_SUPPORTED_VERSION_RELEASE = 1836; | ||||
|   CEF_SUPPORTED_VERSION_RELEASE = 1840; | ||||
|   CEF_SUPPORTED_VERSION_BUILD   = 0; | ||||
|  | ||||
|   CEF_CHROMEELF_VERSION_MAJOR   = 69; | ||||
| @@ -716,20 +716,13 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TCefApplication.SetBrowserSubprocessPath(const aValue : ustring); | ||||
| var | ||||
|   TempPath : string; | ||||
| begin | ||||
|   if (length(aValue) > 0) then | ||||
|     begin | ||||
|       if CustomPathIsRelative(aValue) then | ||||
|         TempPath := GetModulePath + aValue | ||||
|         FBrowserSubprocessPath := GetModulePath + aValue | ||||
|        else | ||||
|         TempPath := aValue; | ||||
|  | ||||
|       if FileExists(TempPath) then | ||||
|         FBrowserSubprocessPath := TempPath | ||||
|        else | ||||
|         FBrowserSubprocessPath := ''; | ||||
|         FBrowserSubprocessPath := aValue; | ||||
|     end | ||||
|    else | ||||
|     FBrowserSubprocessPath := ''; | ||||
| @@ -800,7 +793,7 @@ end; | ||||
| function TCefApplication.CheckCEFLibrary : boolean; | ||||
| var | ||||
|   TempString, TempOldDir : string; | ||||
|   TempMissingFrm, TempMissingRsc, TempMissingLoc : boolean; | ||||
|   TempMissingFrm, TempMissingRsc, TempMissingLoc, TempMissingSubProc : boolean; | ||||
|   TempMachine : integer; | ||||
|   TempVersionInfo : TFileVersionInfo; | ||||
| begin | ||||
| @@ -816,11 +809,12 @@ begin | ||||
|           chdir(GetModulePath); | ||||
|         end; | ||||
|  | ||||
|       TempMissingFrm := not(CheckDLLs(FFrameworkDirPath, FMissingLibFiles)); | ||||
|       TempMissingRsc := not(CheckResources(FResourcesDirPath, FMissingLibFiles, FCheckDevToolsResources, not(FDisableExtensions))); | ||||
|       TempMissingLoc := not(CheckLocales(FLocalesDirPath, FMissingLibFiles, FLocalesRequired)); | ||||
|       TempMissingSubProc := not(CheckSubprocessPath(FBrowserSubprocessPath, FMissingLibFiles)); | ||||
|       TempMissingFrm     := not(CheckDLLs(FFrameworkDirPath, FMissingLibFiles)); | ||||
|       TempMissingRsc     := not(CheckResources(FResourcesDirPath, FMissingLibFiles, FCheckDevToolsResources, not(FDisableExtensions))); | ||||
|       TempMissingLoc     := not(CheckLocales(FLocalesDirPath, FMissingLibFiles, FLocalesRequired)); | ||||
|  | ||||
|       if TempMissingFrm or TempMissingRsc or TempMissingLoc then | ||||
|       if TempMissingFrm or TempMissingRsc or TempMissingLoc or TempMissingSubProc then | ||||
|         begin | ||||
|           FStatus    := asErrorMissingFiles; | ||||
|           TempString := 'CEF3 binaries missing !'; | ||||
| @@ -1639,6 +1633,8 @@ begin | ||||
|       FLibLoaded := True; | ||||
|       Result     := True; | ||||
|  | ||||
|       {$IFDEF DEBUG}CefDebugLog('Process started', CEF_LOG_SEVERITY_INFO);{$ENDIF} | ||||
|  | ||||
|       if FEnableHighDPISupport then cef_enable_highdpi_support(); | ||||
|     end | ||||
|    else | ||||
|   | ||||
| @@ -57,7 +57,7 @@ uses | ||||
|     {$IFDEF MSWINDOWS}Windows, ActiveX,{$ENDIF} {$IFDEF DELPHI14_UP}IOUtils,{$ENDIF} Classes, SysUtils, Controls, Graphics, Math, | ||||
|   {$ENDIF} | ||||
|   uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFResourceHandler, | ||||
|   uCEFRegisterCDMCallback; | ||||
|   uCEFRegisterCDMCallback, uCEFConstants; | ||||
|  | ||||
| const | ||||
|   Kernel32DLL = 'kernel32.dll'; | ||||
| @@ -148,7 +148,7 @@ function  CefCrashReportingEnabled : boolean; | ||||
| procedure CefSetCrashKeyValue(const aKey, aValue : ustring); | ||||
|  | ||||
| procedure CefLog(const aFile : string; aLine, aSeverity : integer; const aMessage : string); | ||||
| procedure CefDebugLog(const aMessage : string); | ||||
| procedure CefDebugLog(const aMessage : string; aSeverity : integer = CEF_LOG_SEVERITY_ERROR); | ||||
| procedure OutputDebugMessage(const aMessage : string); | ||||
| function  CustomExceptionHandler(const aFunctionName : string; const aException : exception) : boolean; | ||||
|  | ||||
| @@ -166,6 +166,7 @@ function  GetDLLVersion(const aDLLFile : string; var aVersionInfo : TFileVersion | ||||
|  | ||||
| function SplitLongString(aSrcString : string) : string; | ||||
| function GetAbsoluteDirPath(const aSrcPath : string; var aRsltPath : string) : boolean; | ||||
| function CheckSubprocessPath(const aSubprocessPath : string; var aMissingFiles : string) : boolean; | ||||
| function CheckLocales(const aLocalesDirPath : string; var aMissingFiles : string; const aLocalesRequired : string = '') : boolean; | ||||
| function CheckResources(const aResourcesDirPath : string; var aMissingFiles : string; aCheckDevResources: boolean = True; aCheckExtensions: boolean = True) : boolean; | ||||
| function CheckDLLs(const aFrameworkDirPath : string; var aMissingFiles : string) : boolean; | ||||
| @@ -226,7 +227,7 @@ function DeleteDirContents(const aDirectory : string) : boolean; | ||||
| implementation | ||||
|  | ||||
| uses | ||||
|   uCEFConstants, uCEFApplication, uCEFSchemeHandlerFactory, uCEFValue, | ||||
|   uCEFApplication, uCEFSchemeHandlerFactory, uCEFValue, | ||||
|   uCEFBinaryValue, uCEFStringList; | ||||
|  | ||||
| function CefColorGetA(color: TCefColor): Byte; | ||||
| @@ -650,7 +651,7 @@ begin | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure CefDebugLog(const aMessage : string); | ||||
| procedure CefDebugLog(const aMessage : string; aSeverity : integer); | ||||
| const | ||||
|   DEFAULT_LINE = 1; | ||||
| var | ||||
| @@ -668,7 +669,7 @@ begin | ||||
|         else          TempString := TempString + ', PT: Other'; | ||||
|       end; | ||||
|  | ||||
|       CefLog('CEF4Delphi', DEFAULT_LINE, CEF_LOG_SEVERITY_ERROR, TempString + ' - ' + aMessage); | ||||
|       CefLog('CEF4Delphi', DEFAULT_LINE, aSeverity, TempString + ' - ' + aMessage); | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| @@ -945,6 +946,21 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| function CheckSubprocessPath(const aSubprocessPath : string; var aMissingFiles : string) : boolean; | ||||
| begin | ||||
|   Result := False; | ||||
|  | ||||
|   try | ||||
|     if (length(aSubprocessPath) = 0) or FileExists(aSubprocessPath) then | ||||
|       Result := True | ||||
|      else | ||||
|       aMissingFiles := trim(aMissingFiles) + CRLF + ExtractFileName(aSubprocessPath); | ||||
|   except | ||||
|     on e : exception do | ||||
|       if CustomExceptionHandler('CheckSubprocessPath', e) then raise; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| function CheckDLLs(const aFrameworkDirPath : string; var aMissingFiles : string) : boolean; | ||||
| var | ||||
|   TempDir    : string; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user