From a822fc23d52f78c74146955c9f912555376b94ed Mon Sep 17 00:00:00 2001 From: martin Date: Fri, 19 Feb 2021 00:12:51 +0100 Subject: [PATCH 1/3] Url Dropdown Fix Caption for ExternalPumpBrowser Fix Windows IFDEF --- .../uExternalPumpBrowser.lfm | 25 +++++++++++++++++-- .../uExternalPumpBrowser.pas | 8 ++++-- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.lfm b/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.lfm index 307025aa..312fb071 100644 --- a/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.lfm +++ b/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.lfm @@ -32,12 +32,33 @@ object Form1: TForm1 OnClick = GoBtnClick TabOrder = 0 end - object AddressEdt: TEdit + object AddressEdt: TComboBox Left = 0 - Height = 23 + Height = 21 Top = 0 Width = 932 Align = alClient + ItemHeight = 13 + ItemIndex = 0 + Items.Strings = ( + 'https://www.google.com' + 'https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending' + 'https://www.w3schools.com/js/tryit.asp?filename=tryjs_win_close' + 'https://www.w3schools.com/html/html5_video.asp' + 'http://www.adobe.com/software/flash/about/' + 'http://isflashinstalled.com/' + 'chrome://version/' + 'http://html5test.com/' + 'https://www.w3schools.com/' + 'http://webglsamples.org/' + 'https://get.webgl.org/' + 'https://www.youtube.com' + 'https://html5demos.com/drag/' + 'https://developers.google.com/maps/documentation/javascript/examples/streetview-embed?hl=fr' + 'https://www.w3schools.com/Tags/tryit.asp?filename=tryhtml_iframe_name' + 'https://www.browserleaks.com/webrtc' + 'https://frames-per-second.appspot.com/' + ) TabOrder = 1 Text = 'https://www.google.com' end diff --git a/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.pas b/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.pas index dc3febcc..c425d640 100644 --- a/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.pas +++ b/demos/Lazarus_any_OS/ExternalPumpBrowser/uExternalPumpBrowser.pas @@ -52,7 +52,7 @@ type { TForm1 } TForm1 = class(TForm) - AddressEdt: TEdit; + AddressEdt: TComboBox; CEFLinkedWindowParent1: TCEFLinkedWindowParent; GoBtn: TButton; Chromium1: TChromium; @@ -86,8 +86,10 @@ type procedure WMMove(var Message: TLMMove); message LM_MOVE; procedure WMSize(var Message: TLMSize); message LM_SIZE; procedure WMWindowPosChanged(var Message: TLMWindowPosChanged); message LM_WINDOWPOSCHANGED; + {$IFDEF WINDOWS} procedure WMEnterMenuLoop(var aMessage: TMessage); message WM_ENTERMENULOOP; procedure WMExitMenuLoop(var aMessage: TMessage); message WM_EXITMENULOOP; + {$ENDIF} procedure SendCompMessage(aMsg : cardinal); @@ -235,7 +237,7 @@ end; procedure TForm1.BrowserCreatedMsg(Data: PtrInt); begin - Caption := 'Simple Browser 2'; + Caption := 'External-Pump Browser 2'; AddressPnl.Enabled := True; end; @@ -275,6 +277,7 @@ begin Chromium1.NotifyMoveOrResizeStarted; end; +{$IFDEF WINDOWS} procedure TForm1.WMEnterMenuLoop(var aMessage: TMessage); begin inherited; @@ -288,6 +291,7 @@ begin if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then GlobalCEFApp.OsmodalLoop := False; end; +{$ENDIF} initialization if GlobalCEFApp = nil then begin From 14bfc9c8323c1ed3cccab3912af97a9219c5845d Mon Sep 17 00:00:00 2001 From: martin Date: Thu, 18 Feb 2021 23:55:24 +0100 Subject: [PATCH 2/3] Sample app for Mac only --- .../ExternalPumpBrowser/00-Delete.bat | 2 + .../ExternalPumpBrowser.ico | Bin 0 -> 137040 bytes .../ExternalPumpBrowser.lpi | 89 ++++ .../ExternalPumpBrowser.lpr | 75 +++ .../ExternalPumpBrowser.res | Bin 0 -> 139096 bytes .../ExternalPumpBrowser/README.txt | 24 + demos/Lazarus_Mac/ExternalPumpBrowser/cef.inc | 468 ++++++++++++++++++ .../ExternalPumpBrowser/create_mac_helper.sh | 8 + .../globalcefapplication.pas | 48 ++ .../uExternalPumpBrowser.lfm | 94 ++++ .../uExternalPumpBrowser.pas | 289 +++++++++++ 11 files changed, 1097 insertions(+) create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/00-Delete.bat create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.ico create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpi create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpr create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.res create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/README.txt create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/cef.inc create mode 100755 demos/Lazarus_Mac/ExternalPumpBrowser/create_mac_helper.sh create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/globalcefapplication.pas create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.lfm create mode 100644 demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.pas diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/00-Delete.bat b/demos/Lazarus_Mac/ExternalPumpBrowser/00-Delete.bat new file mode 100644 index 00000000..0b5ba5c8 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/00-Delete.bat @@ -0,0 +1,2 @@ +rmdir /S /Q lib +rmdir /S /Q backup diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.ico b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.ico new file mode 100644 index 0000000000000000000000000000000000000000..0341321b5d952e1662a3d9444a73cf9f42a7db37 GIT binary patch literal 137040 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 G`+orYGy**U literal 0 HcmV?d00001 diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpi b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpi new file mode 100644 index 00000000..a72ab281 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpi @@ -0,0 +1,89 @@ + + + + + + + + + + + <Scaled Value="True"/> + <ResourceType Value="res"/> + <UseXPManifest Value="True"/> + <XPManifest> + <DpiAware Value="True"/> + </XPManifest> + <Icon Value="0"/> + </General> + <BuildModes Count="1"> + <Item1 Name="Default" Default="True"/> + </BuildModes> + <PublishOptions> + <Version Value="2"/> + <UseFileFilters Value="True"/> + </PublishOptions> + <RunParams> + <FormatVersion Value="2"/> + </RunParams> + <RequiredPackages Count="2"> + <Item1> + <PackageName Value="CEF4Delphi_Lazarus"/> + </Item1> + <Item2> + <PackageName Value="LCL"/> + </Item2> + </RequiredPackages> + <Units Count="3"> + <Unit0> + <Filename Value="ExternalPumpBrowser.lpr"/> + <IsPartOfProject Value="True"/> + </Unit0> + <Unit1> + <Filename Value="uExternalPumpBrowser.pas"/> + <IsPartOfProject Value="True"/> + <ComponentName Value="Form1"/> + <HasResources Value="True"/> + <ResourceBaseClass Value="Form"/> + </Unit1> + <Unit2> + <Filename Value="globalcefapplication.pas"/> + <IsPartOfProject Value="True"/> + <UnitName Value="GlobalCefApplication"/> + </Unit2> + </Units> + </ProjectOptions> + <CompilerOptions> + <Version Value="11"/> + <Target> + <Filename Value="../../../bin/ExternalPumpBrowser"/> + </Target> + <SearchPaths> + <IncludeFiles Value="$(ProjOutDir)"/> + <UnitOutputDirectory Value="lib/$(TargetCPU)-$(TargetOS)"/> + </SearchPaths> + <Linking> + <Options> + <Win32> + <GraphicApplication Value="True"/> + </Win32> + </Options> + </Linking> + <Other> + <CustomOptions Value="-dUseCthreads"/> + </Other> + </CompilerOptions> + <Debugging> + <Exceptions Count="3"> + <Item1> + <Name Value="EAbort"/> + </Item1> + <Item2> + <Name Value="ECodetoolError"/> + </Item2> + <Item3> + <Name Value="EFOpenError"/> + </Item3> + </Exceptions> + </Debugging> +</CONFIG> diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpr b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpr new file mode 100644 index 00000000..c04fad72 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.lpr @@ -0,0 +1,75 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2018 Salvador Díaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest <hgourvest@gmail.com> + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + + + (* + * Include the following files + * ExternalPumpBrowser.app/Contents/Frameworks/ExternalPumpBrowser Helper.app/ + * files from the demos/Lazarus_Mac/AppHelper project + * use create_mac_helper.sh + * + * ExternalPumpBrowser.app/Contents/Frameworks/Chromium Embedded Framework.framework + * files from Release folder in cef download + * + *) + + +program ExternalPumpBrowser; + +{$mode objfpc}{$H+} + +uses + {$IFDEF UNIX}{$IFDEF UseCThreads} + cthreads, + {$ENDIF}{$ENDIF} + Interfaces, + Forms, + uExternalPumpBrowser, GlobalCefApplication + { you can add units after this } + ; + +{$R *.res} + +begin + RequireDerivedFormResource:=True; + Application.Title := 'External Pump Browser'; + Application.Scaled := True; + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.Run; +end. + diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.res b/demos/Lazarus_Mac/ExternalPumpBrowser/ExternalPumpBrowser.res new file mode 100644 index 0000000000000000000000000000000000000000..bec39b4a4c4b0dfa0090a21b8f32b5c16344ccc3 GIT binary patch literal 139096 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�^`to-(_S|U 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 ZwWttHXkH7=npKFnfX%0}ROd0){XbFPT;>1( literal 0 HcmV?d00001 diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/README.txt b/demos/Lazarus_Mac/ExternalPumpBrowser/README.txt new file mode 100644 index 00000000..deeaaf98 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/README.txt @@ -0,0 +1,24 @@ +ExternalPumpBrowser + +# ABOUT + +This example uses + TCEFLinkedWindowParent + TCEFWorkScheduler + +TCEFWorkScheduler feeds the CEF messageloop by calling DoMessageLoopWork(). On Mac this is currently the only way to run the CEF messageloop. + + +# SETUP + +1) Go to "project options" and create the "App Bundle" +2) Download the CEF framework and place the content of the "Release" folder into ExternalPumpBrowser.app/Contents/Frameworks/Chromium Embedded Framework.framework +You should have: + Chromium Embedded Framework + Libraries/* + Resources/* +3) Open project "AppHelper" (from demos/Lazarus_any_OS ), create App Bundle and compile the AppHelper. + Run create_mac_helper.sh +4) Open project ExternalPumpBrowser, compile and run + + diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/cef.inc b/demos/Lazarus_Mac/ExternalPumpBrowser/cef.inc new file mode 100644 index 00000000..c8ce967e --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/cef.inc @@ -0,0 +1,468 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2017 Salvador Diaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest <hgourvest@gmail.com> + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + + // The complete list of compiler versions is here : + // http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Compiler_Versions + +{$DEFINE DELPHI_VERSION_UNKNOW} + +// Delphi 5 +{$IFDEF VER130} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} +{$ENDIF} + +// Delphi 6 +{$IFDEF VER140} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} +{$ENDIF} + +// Delphi 7 +{$IFDEF VER150} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} +{$ENDIF} + +// Delphi 8 +{$IFDEF VER160} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} +{$ENDIF} + +// Delphi 2005 +{$IFDEF VER170} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} +{$ENDIF} + +{$IFDEF VER180} + {$UNDEF DELPHI_VERSION_UNKNOW} + // Delphi 2007 + {$IFDEF VER185} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + // Delphi 2006 + {$ELSE} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$ENDIF} +{$ENDIF} + +// Delphi 2009 +{$IFDEF VER200} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} +{$ENDIF} + +//Delphi 2010 +{$IFDEF VER210} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} +{$ENDIF} + +// Delphi XE +{$IFDEF VER220} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} +{$ENDIF} + +// Delphi XE2 (First FireMonkey and 64bit compiler) +{$IFDEF VER230} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} +{$ENDIF} + +// Delphi XE3 +{$IFDEF VER240} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} +{$ENDIF} + +// Delphi XE4 +{$IFDEF VER250} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} +{$ENDIF} + +// Delphi XE5 +{$IFDEF VER260} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} +{$ENDIF} + +// Delphi XE6 +{$IFDEF VER270} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} +{$ENDIF} + +// Delphi XE7 +{$IFDEF VER280} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} +{$ENDIF} + +// Delphi XE8 +{$IFDEF VER290} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} +{$ENDIF VER290} + +// Rad Studio 10 - Delphi Seattle +{$IFDEF VER300} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} +{$ENDIF} + +// Rad Studio 10.1 - Delphi Berlin +{$IFDEF VER310} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} + {$DEFINE DELPHI24_UP} +{$ENDIF} + +// Rad Studio 10.2 - Delphi Tokyo +{$IFDEF VER320} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} + {$DEFINE DELPHI24_UP} + {$DEFINE DELPHI25_UP} +{$ENDIF} + +// Rad Studio 10.3 - Delphi Rio +{$IFDEF VER330} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} + {$DEFINE DELPHI24_UP} + {$DEFINE DELPHI25_UP} + {$DEFINE DELPHI26_UP} +{$ENDIF} + +// Rad Studio 10.4 - Delphi Sydney +{$IFDEF VER340} + {$UNDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} + {$DEFINE DELPHI24_UP} + {$DEFINE DELPHI25_UP} + {$DEFINE DELPHI26_UP} + {$DEFINE DELPHI27_UP} +{$ENDIF} + +{$IFDEF FPC} + {$DEFINE SUPPORTS_INLINE} + {$IF DEFINED(FPC_FULLVERSION) AND (FPC_FULLVERSION >= 30200)} + {$DEFINE FPC_VER_320} + {$IFEND} +{$ELSE} + {$IFDEF DELPHI_VERSION_UNKNOW} + {$DEFINE DELPHI5_UP} + {$DEFINE DELPHI6_UP} + {$DEFINE DELPHI7_UP} + {$DEFINE DELPHI8_UP} + {$DEFINE DELPHI9_UP} + {$DEFINE DELPHI10_UP} + {$DEFINE DELPHI11_UP} + {$DEFINE DELPHI12_UP} + {$DEFINE DELPHI14_UP} + {$DEFINE DELPHI15_UP} + {$DEFINE DELPHI16_UP} + {$DEFINE DELPHI17_UP} + {$DEFINE DELPHI18_UP} + {$DEFINE DELPHI19_UP} + {$DEFINE DELPHI20_UP} + {$DEFINE DELPHI21_UP} + {$DEFINE DELPHI22_UP} + {$DEFINE DELPHI23_UP} + {$DEFINE DELPHI24_UP} + {$DEFINE DELPHI25_UP} + {$DEFINE DELPHI26_UP} + {$DEFINE DELPHI27_UP} + {$ENDIF} +{$ENDIF} + +{$IFDEF DELPHI9_UP} + {$DEFINE SUPPORTS_INLINE} +{$ENDIF} + +{$IF DEFINED(CPUX32) OR + DEFINED(CPU386) OR + DEFINED(CPUi386) OR + DEFINED(CPUPOWERPC32) OR + DEFINED(CPUSPARC32) OR + DEFINED(CPU32BITS) OR + DEFINED(CPUARM32) OR + DEFINED(WIN32) OR + DEFINED(IOS32) OR + DEFINED(MACOS32) OR + DEFINED(LINUX32) OR + DEFINED(POSIX32) OR + DEFINED(ANDROID32)} + {$DEFINE TARGET_32BITS} +{$IFEND} + +// Delphi uses MACOS for the new MacOSX and DARWIN is not defined +// FPC uses DARWIN for the new MacOSX and MACOS is defined for the classic Macintosh OS (System 7) +// We define MACOSX to avoid conflicts in both situations +{$IFDEF FPC} + {$IFDEF DARWIN} + {$DEFINE MACOSX} + {$ENDIF} +{$ELSE} + {$IFDEF MACOS} + {$DEFINE MACOSX} + {$ENDIF} +{$ENDIF} diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/create_mac_helper.sh b/demos/Lazarus_Mac/ExternalPumpBrowser/create_mac_helper.sh new file mode 100755 index 00000000..bd124ded --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/create_mac_helper.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +CDIR=$(pwd) +cd "$(dirname "$0")" + +../../Lazarus_any_OS/AppHelper/create_mac_helper_apps.sh ../../../bin/ExternalPumpBrowser.app + +cd "$CDIR" diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/globalcefapplication.pas b/demos/Lazarus_Mac/ExternalPumpBrowser/globalcefapplication.pas new file mode 100644 index 00000000..529245f8 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/globalcefapplication.pas @@ -0,0 +1,48 @@ +unit GlobalCefApplication; + +{$mode ObjFPC}{$H+} +{$I cef.inc} + +interface + +uses + uCEFApplication, uCEFWorkScheduler; + +procedure CreateGlobalCEFApp; + +implementation + +procedure GlobalCEFApp_OnScheduleMessagePumpWork(const aDelayMS : int64); +begin + if (GlobalCEFWorkScheduler <> nil) then GlobalCEFWorkScheduler.ScheduleMessagePumpWork(aDelayMS); +end; + +procedure CreateGlobalCEFApp; +begin + if GlobalCEFApp <> nil then + exit; + + // TCEFWorkScheduler will call cef_do_message_loop_work when + // it's told in the GlobalCEFApp.OnScheduleMessagePumpWork event. + // GlobalCEFWorkScheduler needs to be created before the + // GlobalCEFApp.StartMainProcess call. + GlobalCEFWorkScheduler := TCEFWorkScheduler.Create(nil); + + GlobalCEFApp := TCefApplication.Create; + GlobalCEFApp.ExternalMessagePump := True; + GlobalCEFApp.MultiThreadedMessageLoop := False; + GlobalCEFApp.OnScheduleMessagePumpWork := @GlobalCEFApp_OnScheduleMessagePumpWork; + + (* Enable the below to prevent being asked for permission to access "Chromium Safe Storage" + If set to true, Cookies will not be encrypted. + *) + //GlobalCEFApp.UseMockKeyChain := True; + + { + GlobalCEFApp.LogFile := 'cef.log'; + GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE; + } +end; + +end. + diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.lfm b/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.lfm new file mode 100644 index 00000000..312fb071 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.lfm @@ -0,0 +1,94 @@ +object Form1: TForm1 + Left = 473 + Height = 589 + Top = 227 + Width = 967 + Caption = 'Initializing browser. Please wait...' + ClientHeight = 589 + ClientWidth = 967 + OnActivate = FormActivate + OnCloseQuery = FormCloseQuery + OnCreate = FormCreate + Position = poScreenCenter + LCLVersion = '2.0.10.0' + object AddressPnl: TPanel + Left = 0 + Height = 23 + Top = 0 + Width = 967 + Align = alTop + BevelOuter = bvNone + ClientHeight = 23 + ClientWidth = 967 + Enabled = False + TabOrder = 0 + object GoBtn: TButton + Left = 932 + Height = 23 + Top = 0 + Width = 35 + Align = alRight + Caption = 'Go' + OnClick = GoBtnClick + TabOrder = 0 + end + object AddressEdt: TComboBox + Left = 0 + Height = 21 + Top = 0 + Width = 932 + Align = alClient + ItemHeight = 13 + ItemIndex = 0 + Items.Strings = ( + 'https://www.google.com' + 'https://www.whatismybrowser.com/detect/what-http-headers-is-my-browser-sending' + 'https://www.w3schools.com/js/tryit.asp?filename=tryjs_win_close' + 'https://www.w3schools.com/html/html5_video.asp' + 'http://www.adobe.com/software/flash/about/' + 'http://isflashinstalled.com/' + 'chrome://version/' + 'http://html5test.com/' + 'https://www.w3schools.com/' + 'http://webglsamples.org/' + 'https://get.webgl.org/' + 'https://www.youtube.com' + 'https://html5demos.com/drag/' + 'https://developers.google.com/maps/documentation/javascript/examples/streetview-embed?hl=fr' + 'https://www.w3schools.com/Tags/tryit.asp?filename=tryhtml_iframe_name' + 'https://www.browserleaks.com/webrtc' + 'https://frames-per-second.appspot.com/' + ) + TabOrder = 1 + Text = 'https://www.google.com' + end + end + object CEFLinkedWindowParent1: TCEFLinkedWindowParent + Left = 0 + Height = 566 + Top = 23 + Width = 967 + Align = alClient + TabStop = True + TabOrder = 1 + OnEnter = CEFLinkedWindowParent1Enter + OnExit = CEFLinkedWindowParent1Exit + Chromium = Chromium1 + end + object Chromium1: TChromium + OnGotFocus = Chromium1GotFocus + OnBeforePopup = Chromium1BeforePopup + OnAfterCreated = Chromium1AfterCreated + OnBeforeClose = Chromium1BeforeClose + OnClose = Chromium1Close + OnOpenUrlFromTab = Chromium1OpenUrlFromTab + Left = 56 + Top = 80 + end + object Timer1: TTimer + Enabled = False + OnTimer = Timer1Timer + Left = 56 + Top = 160 + end +end diff --git a/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.pas b/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.pas new file mode 100644 index 00000000..14f94ad6 --- /dev/null +++ b/demos/Lazarus_Mac/ExternalPumpBrowser/uExternalPumpBrowser.pas @@ -0,0 +1,289 @@ +// ************************************************************************ +// ***************************** CEF4Delphi ******************************* +// ************************************************************************ +// +// CEF4Delphi is based on DCEF3 which uses CEF to embed a chromium-based +// browser in Delphi applications. +// +// The original license of DCEF3 still applies to CEF4Delphi. +// +// For more information about CEF4Delphi visit : +// https://www.briskbard.com/index.php?lang=en&pageid=cef +// +// Copyright © 2021 Salvador Diaz Fau. All rights reserved. +// +// ************************************************************************ +// ************ vvvv Original license and comments below vvvv ************* +// ************************************************************************ +(* + * Delphi Chromium Embedded 3 + * + * Usage allowed under the restrictions of the Lesser GNU General Public License + * or alternatively the restrictions of the Mozilla Public License 1.1 + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for + * the specific language governing rights and limitations under the License. + * + * Unit owner : Henri Gourvest <hgourvest@gmail.com> + * Web site : http://www.progdigy.com + * Repository : http://code.google.com/p/delphichromiumembedded/ + * Group : http://groups.google.com/group/delphichromiumembedded + * + * Embarcadero Technologies, Inc is not permitted to use or redistribute + * this source code without explicit permission. + * + *) + +unit uExternalPumpBrowser; + +{$mode objfpc}{$H+} + +interface + +uses + GlobalCefApplication, Classes, SysUtils, Messages, Forms, Controls, Graphics, + Dialogs, ExtCtrls, StdCtrls, LMessages, uCEFChromium, uCEFWindowParent, + uCEFConstants, uCEFTypes, uCEFInterfaces, uCEFChromiumEvents, + uCEFLinkedWindowParent, uCEFWorkScheduler; + +type + + { TForm1 } + + TForm1 = class(TForm) + AddressEdt: TComboBox; + CEFLinkedWindowParent1: TCEFLinkedWindowParent; + GoBtn: TButton; + Chromium1: TChromium; + AddressPnl: TPanel; + Timer1: TTimer; + + procedure CEFLinkedWindowParent1Enter(Sender: TObject); + procedure CEFLinkedWindowParent1Exit(Sender: TObject); + + procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); + procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); + procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction); + procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean); + procedure Chromium1GotFocus(Sender: TObject; const browser: ICefBrowser); + procedure Chromium1OpenUrlFromTab(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out Result: Boolean); + + procedure FormCreate(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); + + procedure GoBtnClick(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + private + + protected + // Variables to control when can we destroy the form safely + FCanClose : boolean; // Set to True in TChromium.OnBeforeClose + FClosing : boolean; // Set to True in the CloseQuery event. + + // CEF needs to handle these messages to call TChromium.NotifyMoveOrResizeStarted + procedure WMMove(var Message: TLMMove); message LM_MOVE; + procedure WMSize(var Message: TLMSize); message LM_SIZE; + procedure WMWindowPosChanged(var Message: TLMWindowPosChanged); message LM_WINDOWPOSCHANGED; + + procedure SendCompMessage(aMsg : cardinal); + + procedure BrowserCreatedMsg(Data: PtrInt); + procedure BrowserCloseFormMsg(Data: PtrInt); + public + + end; + +var + Form1: TForm1; + + +implementation + +{$R *.lfm} + +// This is a demo with the simplest web browser you can build using CEF4Delphi and +// it doesn't show any sign of progress like other web browsers do. + +// Remember that it may take a few seconds to load if Windows update, your antivirus or +// any other windows service is using your hard drive. + +// Depending on your internet connection it may take longer than expected. + +// Please check that your firewall or antivirus are not blocking this application +// or the domain "google.com". If you don't live in the US, you'll be redirected to +// another domain which will take a little time too. + +// This demo uses a TChromium and a TCEFLinkedWindowParent + +// We need to use TCEFLinkedWindowParent in Linux to update the browser +// visibility and size automatically. + +// Destruction steps +// ================= +// 1. FormCloseQuery sets CanClose to FALSE calls TChromium.CloseBrowser which triggers the TChromium.OnClose event. +// 2. TChromium.OnClose sets aAction to cbaClose to destroy the browser, which triggers the TChromium.OnBeforeClose event. +// 3. TChromium.OnBeforeClose sets FCanClose := True and sends CEF_BEFORECLOSE to close the form. + +uses + uCEFApplication; + +{ TForm1 } + +procedure TForm1.FormCreate(Sender: TObject); +begin + FCanClose := False; + FClosing := False; + + Chromium1.DefaultURL := UTF8Decode(AddressEdt.Text); +end; + +procedure TForm1.GoBtnClick(Sender: TObject); +begin + Chromium1.LoadURL(UTF8Decode(AddressEdt.Text)); +end; + +procedure TForm1.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + if not(Chromium1.CreateBrowser(CEFLinkedWindowParent1.Handle, CEFLinkedWindowParent1.BoundsRect)) and + not(Chromium1.Initialized) then + Timer1.Enabled := True; +end; + +procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean); +begin + CanClose := FCanClose; + + if not(FClosing) then + begin + FClosing := True; + Visible := False; + Chromium1.CloseBrowser(True); + end; +end; + +procedure TForm1.Chromium1BeforePopup(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, + targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; + userGesture: Boolean; const popupFeatures: TCefPopupFeatures; + var windowInfo: TCefWindowInfo; var client: ICefClient; + var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; + var noJavascriptAccess: Boolean; var Result: Boolean); +begin + // For simplicity, this demo blocks all popup windows and new tabs + Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); +end; + +procedure TForm1.Chromium1OpenUrlFromTab(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; + targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; out + Result: Boolean); +begin + // For simplicity, this demo blocks all popup windows and new tabs + Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); +end; + +procedure TForm1.FormActivate(Sender: TObject); +begin +// if not(Chromium1.Initialized) and +// not(Chromium1.CreateBrowser(CEFLinkedWindowParent1.Handle, CEFLinkedWindowParent1.BoundsRect)) then + Timer1.Enabled := True; +end; + +procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction); +begin + aAction := cbaClose; +end; + +procedure TForm1.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); +begin + // We must wait until all browsers trigger the TChromium.OnBeforeClose event + // in order to close the application safely or we will have shutdown issues. + FCanClose := True; + SendCompMessage(CEF_BEFORECLOSE); +end; + +procedure TForm1.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); +begin + // Now the browser is fully initialized we can initialize the UI. + SendCompMessage(CEF_AFTERCREATED); +end; + +procedure TForm1.CEFLinkedWindowParent1Enter(Sender: TObject); +begin + If not(csDesigning in ComponentState) then Chromium1.SetFocus(True); +end; + +// This is a workaround for the CEF issue #2026 +// https://bitbucket.org/chromiumembedded/cef/issues/2026/multiple-major-keyboard-focus-issues-on +// We use CEFLinkedWindowParent1.OnEnter, CEFLinkedWindowParent1.OnExit and +// TChromium.OnGotFocus to avoid most of the focus issues. +// CEFLinkedWindowParent1.TabStop must be TRUE. +procedure TForm1.CEFLinkedWindowParent1Exit(Sender: TObject); +begin + if not(csDesigning in ComponentState) then + Chromium1.SendCaptureLostEvent; +end; + +procedure TForm1.BrowserCreatedMsg(Data: PtrInt); +begin + Caption := 'External-Pump Browser 2'; + AddressPnl.Enabled := True; +end; + +procedure TForm1.BrowserCloseFormMsg(Data: PtrInt); +begin + Close; +end; + +procedure TForm1.SendCompMessage(aMsg : cardinal); +begin + case aMsg of + CEF_AFTERCREATED : Application.QueueAsyncCall(@BrowserCreatedMsg, 0); + CEF_BEFORECLOSE : Application.QueueAsyncCall(@BrowserCloseFormMsg, 0); + end; +end; + +procedure TForm1.Chromium1GotFocus(Sender: TObject; const browser: ICefBrowser); +begin + CEFLinkedWindowParent1.SetFocus; +end; + +procedure TForm1.WMMove(var Message: TLMMove); +begin + inherited; + Chromium1.NotifyMoveOrResizeStarted; +end; + +procedure TForm1.WMSize(var Message: TLMSize); +begin + inherited; + Chromium1.NotifyMoveOrResizeStarted; +end; + +procedure TForm1.WMWindowPosChanged(var Message: TLMWindowPosChanged); +begin + inherited; + Chromium1.NotifyMoveOrResizeStarted; +end; + +initialization + if GlobalCEFApp = nil then begin + CreateGlobalCEFApp; + if not GlobalCEFApp.StartMainProcess then begin + DestroyGlobalCEFApp; + halt(0); // exit the subprocess + end; + end; + +finalization + (* Destroy from this unit, which is used after "Interfaces". So this happens before the Application object is destroyed *) + if GlobalCEFWorkScheduler <> nil then + GlobalCEFWorkScheduler.StopScheduler; + DestroyGlobalCEFApp; + DestroyGlobalCEFWorkScheduler; + +end. + From bab194d3c096042e635af7c806ee57a0bebeb7b6 Mon Sep 17 00:00:00 2001 From: martin <martin@m> Date: Fri, 19 Feb 2021 02:38:43 +0100 Subject: [PATCH 3/3] Add Win32 PE flag --- .../ExternalPumpBrowser/ExternalPumpBrowser.lpr | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/demos/Lazarus_any_OS/ExternalPumpBrowser/ExternalPumpBrowser.lpr b/demos/Lazarus_any_OS/ExternalPumpBrowser/ExternalPumpBrowser.lpr index f78c50ae..b828e5a7 100644 --- a/demos/Lazarus_any_OS/ExternalPumpBrowser/ExternalPumpBrowser.lpr +++ b/demos/Lazarus_any_OS/ExternalPumpBrowser/ExternalPumpBrowser.lpr @@ -67,6 +67,11 @@ uses {$R *.res} +{$IFDEF WIN32} + // CEF needs to set the LARGEADDRESSAWARE ($20) flag which allows 32-bit processes to use up to 3GB of RAM. + {$SetPEFlags $20} +{$ENDIF} + begin RequireDerivedFormResource:=True; Application.Title := 'External Pump Browser';