You've already forked CEF4Delphi
							
							
				mirror of
				https://github.com/salvadordf/CEF4Delphi.git
				synced 2025-10-30 23:07:52 +02:00 
			
		
		
		
	TChromium.OnClose parameter changed
- Fixed initialization issue in FMXExternalPumpBrowser
This commit is contained in:
		| @@ -45,7 +45,6 @@ object WebBrowserFrm: TWebBrowserFrm | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -89,7 +89,6 @@ type | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|  | ||||
|     procedure SnapshotBtnClick(Sender: TObject); | ||||
| @@ -301,13 +300,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TWebBrowserFrm.chrmosrClose(      Sender  : TObject; | ||||
|                                       const browser : ICefBrowser; | ||||
|                                       out   Result  : Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TWebBrowserFrm.chrmosrCursorChange(      Sender           : TObject; | ||||
|                                              const browser          : ICefBrowser; | ||||
|                                                    cursor           : HICON; | ||||
|   | ||||
| @@ -92,7 +92,7 @@ type | ||||
|       var noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|  | ||||
| @@ -254,10 +254,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TCookieVisitorFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TCookieVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject; | ||||
|   | ||||
| @@ -102,7 +102,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   private | ||||
| @@ -342,10 +342,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TDOMVisitorFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TDOMVisitorFrm.Chromium1ContextMenuCommand(Sender: TObject; | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFTypes, uCEFConstants, uCEFInterfaces, uCEFWorkScheduler; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFTypes, uCEFConstants, uCEFInterfaces, uCEFWorkScheduler, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TExternalPumpBrowserFrm = class(TForm) | ||||
| @@ -68,7 +69,7 @@ type | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|  | ||||
|     procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium1BeforePopup(Sender: TObject; | ||||
|       const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, | ||||
| @@ -177,10 +178,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TExternalPumpBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TExternalPumpBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TExternalPumpBrowserFrm.BrowserCreatedMsg(var aMessage : TMessage); | ||||
|   | ||||
| @@ -198,6 +198,12 @@ begin | ||||
|         if not(Application.Terminated) and | ||||
|            (GlobalFMXWorkScheduler <> nil) then | ||||
|           GlobalFMXWorkScheduler.ScheduleWork(TempMsg.lParam); | ||||
|  | ||||
|       CEF_AFTERCREATED : | ||||
|         if not(Application.Terminated) and | ||||
|            (Application.MainForm <> nil) and | ||||
|            (Application.MainForm is TFMXExternalPumpBrowserFrm) then | ||||
|           TFMXExternalPumpBrowserFrm(Application.MainForm).DoBrowserCreated; | ||||
|     end; | ||||
|   {$ENDIF} | ||||
|  | ||||
|   | ||||
| @@ -107,8 +107,8 @@ object FMXExternalPumpBrowserFrm: TFMXExternalPumpBrowserFrm | ||||
|   object chrmosr: TFMXChromium | ||||
|     OnTooltip = chrmosrTooltip | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -94,10 +94,10 @@ type | ||||
|     procedure chrmosrGetScreenInfo(Sender: TObject; const browser: ICefBrowser; var screenInfo: TCefScreenInfo; out Result: Boolean); | ||||
|     procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean); | ||||
|     procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|  | ||||
|     procedure Timer1Timer(Sender: TObject); | ||||
|     procedure AddressEdtEnter(Sender: TObject); | ||||
| @@ -237,7 +237,7 @@ end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.FormDestroy(Sender: TObject); | ||||
| begin | ||||
|   fResizeCS.Free; | ||||
|   FResizeCS.Free; | ||||
|   if (FPopUpBitmap <> nil) then FreeAndNil(FPopUpBitmap); | ||||
| end; | ||||
|  | ||||
| @@ -258,12 +258,8 @@ begin | ||||
|     begin | ||||
|       // opaque white background color | ||||
|       chrmosr.Options.BackgroundColor := CefColorSetARGB($FF, $FF, $FF, $FF); | ||||
|       chrmosr.DefaultUrl              := AddressEdt.Text; | ||||
|  | ||||
|       if chrmosr.CreateBrowser then | ||||
|         DoBrowserCreated | ||||
|        else | ||||
|         Timer1.Enabled := True; | ||||
|       if not(chrmosr.CreateBrowser) then Timer1.Enabled := True; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| @@ -484,11 +480,8 @@ procedure TFMXExternalPumpBrowserFrm.Timer1Timer(Sender: TObject); | ||||
| begin | ||||
|   Timer1.Enabled := False; | ||||
|  | ||||
|   if chrmosr.CreateBrowser then | ||||
|     DoBrowserCreated | ||||
|    else | ||||
|     if not(chrmosr.Initialized) then | ||||
|       Timer1.Enabled := True; | ||||
|   if not(chrmosr.CreateBrowser) and not(chrmosr.Initialized) then | ||||
|     Timer1.Enabled := True; | ||||
| end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.AddressEdtEnter(Sender: TObject); | ||||
| @@ -496,6 +489,14 @@ begin | ||||
|   chrmosr.SendFocusEvent(False); | ||||
| end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.chrmosrAfterCreated(Sender: TObject; | ||||
|   const browser: ICefBrowser); | ||||
| begin | ||||
|   // Now the browser is fully initialized we can send a message to the | ||||
|   // main form to load the initial web page. | ||||
|   SendCompMessage(CEF_AFTERCREATED); | ||||
| end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
| begin | ||||
|   FCanClose := True; | ||||
| @@ -520,11 +521,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TFMXExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject; | ||||
|                                                          const browser          : ICefBrowser; | ||||
|                                                                cursor           : HICON; | ||||
| @@ -864,6 +860,7 @@ begin | ||||
|   Caption            := 'FMX External Pump Browser'; | ||||
|   AddressPnl.Enabled := True; | ||||
|   Panel1.SetFocus; | ||||
|   LoadURL; | ||||
| end; | ||||
|  | ||||
| function TFMXExternalPumpBrowserFrm.getModifiers(Shift: TShiftState): TCefEventFlags; | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|         <FrameworkType>FMX</FrameworkType> | ||||
|         <MainSource>FMXToolBoxBrowser.dpr</MainSource> | ||||
|         <Base>True</Base> | ||||
|         <Config Condition="'$(Config)'==''">Debug</Config> | ||||
|         <Config Condition="'$(Config)'==''">Release</Config> | ||||
|         <Platform Condition="'$(Platform)'==''">Win32</Platform> | ||||
|         <TargetedPlatforms>3</TargetedPlatforms> | ||||
|         <AppType>Application</AppType> | ||||
|   | ||||
| @@ -60,7 +60,7 @@ type | ||||
|  | ||||
|     procedure FMXChromium1BeforePopup(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 noJavascriptAccess, Result: Boolean); | ||||
|     procedure FMXChromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|  | ||||
|   protected | ||||
|     // Variables to control when can we destroy the form safely | ||||
| @@ -157,10 +157,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChildForm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostCustomMessage(CEF_DESTROY, 0, BrowserID); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.FormClose(Sender: TObject; var Action: TCloseAction); | ||||
|   | ||||
| @@ -49,7 +49,7 @@ uses | ||||
|   Controls, Forms, Dialogs, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFTypes, uCEFConstants, | ||||
|   Vcl.ExtCtrls; | ||||
|   Vcl.ExtCtrls, uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TMainForm = class(TForm) | ||||
| @@ -78,7 +78,7 @@ type | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|   private | ||||
|     { Private declarations } | ||||
|   protected | ||||
| @@ -170,10 +170,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TMainForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TMainForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TMainForm.BrowserCreatedMsg(var aMessage : TMessage); | ||||
|   | ||||
| @@ -98,7 +98,7 @@ type | ||||
|       var noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|  | ||||
| @@ -216,10 +216,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSEvalFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSEvalFrm.Chromium1ContextMenuCommand(Sender : TObject; | ||||
|   | ||||
| @@ -50,7 +50,7 @@ uses | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, | ||||
|   uCEFConstants, uCEFv8Value; | ||||
|   uCEFConstants, uCEFv8Value, uCEFWinControl; | ||||
|  | ||||
| const | ||||
|   JSDEMO_CONTEXTMENU_EXECFUNCTION = MENU_ID_USER_FIRST + 1; | ||||
| @@ -87,7 +87,7 @@ type | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -211,10 +211,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TJSExecutingFunctionsFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TJSExecutingFunctionsFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSExecutingFunctionsFrm.Chromium1ContextMenuCommand( | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| const | ||||
|   MINIBROWSER_SHOWTEXTVIEWER = WM_APP + $100; | ||||
| @@ -93,7 +94,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -261,10 +262,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionFrm.Chromium1ContextMenuCommand(Sender: TObject; | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSExtensionWithFunctionFrm = class(TForm) | ||||
| @@ -77,7 +78,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -178,10 +179,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionWithFunctionFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionWithFunctionFrm.Chromium1ProcessMessageReceived( | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSExtensionWithObjectParameterFrm = class(TForm) | ||||
| @@ -73,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -181,10 +182,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionWithObjectParameterFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSExtensionWithObjectParameterFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSSimpleExtensionFrm = class(TForm) | ||||
| @@ -73,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -218,10 +219,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleExtensionFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleExtensionFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -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) | ||||
| @@ -74,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -211,10 +211,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleWindowBindingFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleWindowBindingFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -74,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -192,10 +192,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleWindowBindingFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSSimpleWindowBindingFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSWindowBindingWithFunctionFrm = class(TForm) | ||||
| @@ -73,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -215,10 +216,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSWindowBindingWithFunctionFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSWindowBindingWithFunctionFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -49,7 +49,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ComCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TJSWindowBindingWithObjectFrm = class(TForm) | ||||
| @@ -73,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -216,10 +217,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TJSWindowBindingWithObjectFrm.Chromium1Close( | ||||
|   Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|   Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TJSWindowBindingWithObjectFrm.FormCloseQuery( | ||||
|   | ||||
| @@ -57,7 +57,6 @@ object Form1: TForm1 | ||||
|     OnTooltip = chrmosrTooltip | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -101,7 +101,6 @@ type | ||||
|     procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrBeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel); | ||||
|     procedure chrmosrContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: Cardinal; out Result: Boolean); | ||||
| @@ -356,11 +355,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrCursorChange(      Sender           : TObject; | ||||
|                                      const browser          : ICefBrowser; | ||||
|                                            cursor           : HICON; | ||||
|   | ||||
| @@ -68,7 +68,7 @@ type | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure FormDestroy(Sender: TObject); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
| @@ -143,10 +143,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); | ||||
|   Result := False; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); | ||||
|   | ||||
| @@ -50,7 +50,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, Menus, | ||||
|   Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, | ||||
|   {$ENDIF} | ||||
|   uMainForm, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes; | ||||
|   uMainForm, uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TChildForm = class(TForm) | ||||
| @@ -67,7 +68,7 @@ type | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure FormDestroy(Sender: TObject); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
| @@ -142,10 +143,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); | ||||
|   Result := False; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1LoadingStateChange(Sender: TObject; const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); | ||||
|   | ||||
| @@ -65,9 +65,6 @@ begin | ||||
|   GlobalCEFApp.LogFile              := 'debug.log'; | ||||
|   GlobalCEFApp.LogSeverity          := LOGSEVERITY_INFO; | ||||
|  | ||||
|   GlobalCEFApp.EnableMediaStream := False; | ||||
|   GlobalCEFApp.EnableSpeechInput := False; | ||||
|  | ||||
|   if GlobalCEFApp.StartMainProcess then | ||||
|     begin | ||||
|       Application.Initialize; | ||||
|   | ||||
| @@ -141,6 +141,9 @@ object MiniBrowserFrm: TMiniBrowserFrm | ||||
|           'http://www.adobe.com/software/flash/about/' | ||||
|           'http://isflashinstalled.com/' | ||||
|           'http://html5test.com/' | ||||
|            | ||||
|             'https://webrtc.github.io/samples/src/content/devices/input-outpu' + | ||||
|             't/' | ||||
|           'https://test.webrtc.org/' | ||||
|           'https://www.w3schools.com/' | ||||
|           'http://webglsamples.org/' | ||||
|   | ||||
| @@ -195,7 +195,7 @@ type | ||||
|       out Result: TCefReturnValue); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|     procedure Chromium1RenderCompMsg(var aMessage : TMessage; var aHandled: Boolean); | ||||
| @@ -437,15 +437,13 @@ begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TMiniBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   if (browser <> nil) and (Chromium1.BrowserId = browser.Identifier) then | ||||
|     begin | ||||
|       PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|       Result := True; | ||||
|     end | ||||
|    else | ||||
|     Result := False; | ||||
|       aAction := cbaDelay; | ||||
|     end; | ||||
| end; | ||||
|  | ||||
| procedure TMiniBrowserFrm.Chromium1ContextMenuCommand(Sender: TObject; | ||||
|   | ||||
| @@ -129,7 +129,6 @@ object OSRExternalPumpBrowserFrm: TOSRExternalPumpBrowserFrm | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -97,7 +97,6 @@ type | ||||
|     procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean); | ||||
|     procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect); | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
| @@ -343,11 +342,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TOSRExternalPumpBrowserFrm.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TOSRExternalPumpBrowserFrm.chrmosrCursorChange(Sender : TObject; | ||||
|                                                          const browser          : ICefBrowser; | ||||
|                                                                cursor           : HICON; | ||||
|   | ||||
| @@ -45,7 +45,6 @@ object ChildForm: TChildForm | ||||
|     OnTitleChange = Chromium1TitleChange | ||||
|     OnTooltip = Chromium1Tooltip | ||||
|     OnBeforeClose = Chromium1BeforeClose | ||||
|     OnClose = Chromium1Close | ||||
|     OnGetViewRect = Chromium1GetViewRect | ||||
|     OnGetScreenPoint = Chromium1GetScreenPoint | ||||
|     OnGetScreenInfo = Chromium1GetScreenInfo | ||||
|   | ||||
| @@ -87,7 +87,6 @@ type | ||||
|     procedure Chromium1Tooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; out Result: Boolean); | ||||
|     procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|  | ||||
|   protected | ||||
| @@ -355,11 +354,6 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1CursorChange(Sender : TObject; | ||||
|                                            const browser          : ICefBrowser; | ||||
|                                                  cursor           : HICON; | ||||
|   | ||||
| @@ -51,7 +51,7 @@ uses | ||||
|   Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFTypes, uCEFInterfaces, uCEFConstants, uBufferPanel, | ||||
|   uCEFWindowParent; | ||||
|   uCEFWindowParent, uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TChildForm = class(TForm) | ||||
| @@ -65,7 +65,7 @@ type | ||||
|  | ||||
|     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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|  | ||||
|   protected | ||||
| @@ -179,10 +179,10 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); | ||||
|   | ||||
| @@ -78,7 +78,6 @@ object Form1: TForm1 | ||||
|     Height = 439 | ||||
|     Align = alClient | ||||
|     TabOrder = 1 | ||||
|     ExplicitHeight = 395 | ||||
|   end | ||||
|   object Memo1: TMemo | ||||
|     Left = 0 | ||||
|   | ||||
| @@ -79,7 +79,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|     procedure FormDestroy(Sender: TObject); | ||||
| @@ -371,10 +371,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); | ||||
|   | ||||
| @@ -74,7 +74,6 @@ object ResponseFilterBrowserFrm: TResponseFilterBrowserFrm | ||||
|         Caption = 'Go' | ||||
|         TabOrder = 0 | ||||
|         OnClick = GoBtnClick | ||||
|         ExplicitTop = -1 | ||||
|       end | ||||
|       object RscNameEdt: TEdit | ||||
|         Left = 176 | ||||
|   | ||||
| @@ -77,7 +77,7 @@ type | ||||
|     procedure Chromium1GetResourceResponseFilter(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; out Result: ICefResponseFilter); | ||||
|     procedure Chromium1ResourceLoadComplete(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; status: TCefUrlRequestStatus; receivedContentLength: Int64); | ||||
|     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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium1LoadStart(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; transitionType: Cardinal); | ||||
|     procedure Chromium1BeforeResourceLoad(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const callback: ICefRequestCallback; out Result: TCefReturnValue); | ||||
| @@ -462,10 +462,10 @@ begin | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TResponseFilterBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TResponseFilterBrowserFrm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TResponseFilterBrowserFrm.Chromium1GetResourceResponseFilter(      Sender    : TObject; | ||||
|   | ||||
| @@ -87,7 +87,7 @@ type | ||||
|       var noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   private | ||||
| @@ -169,10 +169,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TSchemeRegistrationBrowserFrm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TSchemeRegistrationBrowserFrm.Chromium1ContextMenuCommand( | ||||
|   | ||||
| @@ -74,7 +74,7 @@ type | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|   protected | ||||
| @@ -181,10 +181,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); | ||||
|   | ||||
| @@ -5,7 +5,7 @@ | ||||
|         <FrameworkType>FMX</FrameworkType> | ||||
|         <MainSource>SimpleFMXBrowser.dpr</MainSource> | ||||
|         <Base>True</Base> | ||||
|         <Config Condition="'$(Config)'==''">Debug</Config> | ||||
|         <Config Condition="'$(Config)'==''">Release</Config> | ||||
|         <Platform Condition="'$(Platform)'==''">Win32</Platform> | ||||
|         <TargetedPlatforms>3</TargetedPlatforms> | ||||
|         <AppType>Application</AppType> | ||||
|   | ||||
| @@ -63,7 +63,7 @@ type | ||||
|     procedure Timer1Timer(Sender: TObject); | ||||
|     procedure FormShow(Sender: TObject); | ||||
|     procedure FMXChromium1Close(Sender: TObject; | ||||
|       const browser: ICefBrowser; out Result: Boolean); | ||||
|       const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure FMXChromium1BeforeClose(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|     procedure FMXChromium1BeforePopup(Sender: TObject; | ||||
| @@ -164,10 +164,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TSimpleFMXBrowserFrm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TSimpleFMXBrowserFrm.FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostCustomMessage(CEF_DESTROY); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| function TSimpleFMXBrowserFrm.PostCustomMessage(aMessage, wParam : cardinal; lParam : integer) : boolean; | ||||
|   | ||||
| @@ -22,11 +22,11 @@ | ||||
|         <HasResources Value="True"/> | ||||
|         <ResourceBaseClass Value="Form"/> | ||||
|         <IsVisibleTab Value="True"/> | ||||
|         <TopLine Value="83"/> | ||||
|         <CursorPos X="43" Y="92"/> | ||||
|         <TopLine Value="94"/> | ||||
|         <CursorPos Y="100"/> | ||||
|         <UsageCount Value="42"/> | ||||
|         <Bookmarks Count="1"> | ||||
|           <Item0 X="40" Y="252" ID="4"/> | ||||
|           <Item0 X="40" Y="251" ID="4"/> | ||||
|         </Bookmarks> | ||||
|         <Loaded Value="True"/> | ||||
|         <LoadedDesigner Value="True"/> | ||||
| @@ -206,11 +206,19 @@ | ||||
|         <UsageCount Value="10"/> | ||||
|       </Unit24> | ||||
|     </Units> | ||||
|     <JumpHistory Count="1"> | ||||
|     <JumpHistory Count="3" HistoryIndex="2"> | ||||
|       <Position1> | ||||
|         <Filename Value="usimplelazosrbrowser.pas"/> | ||||
|         <Caret Line="204" Column="63" TopLine="19"/> | ||||
|       </Position1> | ||||
|       <Position2> | ||||
|         <Filename Value="usimplelazosrbrowser.pas"/> | ||||
|         <Caret Line="100" Column="24" TopLine="89"/> | ||||
|       </Position2> | ||||
|       <Position3> | ||||
|         <Filename Value="usimplelazosrbrowser.pas"/> | ||||
|         <Caret Line="279" Column="33" TopLine="273"/> | ||||
|       </Position3> | ||||
|     </JumpHistory> | ||||
|     <RunParams> | ||||
|       <FormatVersion Value="2"/> | ||||
|   | ||||
| @@ -16,7 +16,7 @@ object Form1: TForm1 | ||||
|   OnHide = FormHide | ||||
|   OnShow = FormShow | ||||
|   Position = poScreenCenter | ||||
|   LCLVersion = '2.0.0.3' | ||||
|   LCLVersion = '2.0.0.4' | ||||
|   object NavControlPnl: TPanel | ||||
|     Left = 0 | ||||
|     Height = 21 | ||||
| @@ -114,7 +114,6 @@ object Form1: TForm1 | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -97,7 +97,6 @@ type | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var aText: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect); | ||||
|  | ||||
| @@ -279,11 +278,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrCursorChange(Sender : TObject; | ||||
|                                      const browser          : ICefBrowser; | ||||
|                                            aCursor          : HICON; | ||||
|   | ||||
| @@ -8,10 +8,10 @@ | ||||
|       <Unit0> | ||||
|         <Filename Value="SimpleLazarusBrowser.lpr"/> | ||||
|         <IsPartOfProject Value="True"/> | ||||
|         <EditorIndex Value="-1"/> | ||||
|         <TopLine Value="5"/> | ||||
|         <TopLine Value="16"/> | ||||
|         <CursorPos X="43" Y="5"/> | ||||
|         <UsageCount Value="43"/> | ||||
|         <Loaded Value="True"/> | ||||
|       </Unit0> | ||||
|       <Unit1> | ||||
|         <Filename Value="usimplelazarusbrowser.pas"/> | ||||
| @@ -21,10 +21,11 @@ | ||||
|         <ResourceBaseClass Value="Form"/> | ||||
|         <UnitName Value="uSimpleLazarusBrowser"/> | ||||
|         <IsVisibleTab Value="True"/> | ||||
|         <EditorIndex Value="-1"/> | ||||
|         <TopLine Value="26"/> | ||||
|         <CursorPos Y="40"/> | ||||
|         <EditorIndex Value="1"/> | ||||
|         <TopLine Value="159"/> | ||||
|         <CursorPos X="27" Y="164"/> | ||||
|         <UsageCount Value="43"/> | ||||
|         <Loaded Value="True"/> | ||||
|       </Unit1> | ||||
|       <Unit2> | ||||
|         <Filename Value="..\..\source\uCEFChromium.pas"/> | ||||
| @@ -402,10 +403,12 @@ | ||||
|         <UsageCount Value="10"/> | ||||
|       </Unit51> | ||||
|     </Units> | ||||
|     <General> | ||||
|       <ActiveWindowIndexAtStart Value="-1"/> | ||||
|     </General> | ||||
|     <JumpHistory HistoryIndex="-1"/> | ||||
|     <JumpHistory Count="1"> | ||||
|       <Position1> | ||||
|         <Filename Value="usimplelazarusbrowser.pas"/> | ||||
|         <Caret Line="67" Column="29" TopLine="57"/> | ||||
|       </Position1> | ||||
|     </JumpHistory> | ||||
|     <RunParams> | ||||
|       <FormatVersion Value="2"/> | ||||
|       <Modes Count="0" ActiveMode="default"/> | ||||
|   | ||||
| @@ -64,8 +64,8 @@ type | ||||
|       const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; | ||||
|       var client: ICefClient; var settings: TCefBrowserSettings; | ||||
|       var noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out | ||||
|       Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); | ||||
|     procedure FormCreate(Sender: TObject); | ||||
|     procedure FormShow(Sender: TObject); | ||||
| @@ -157,10 +157,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEF_DESTROY, 0, 0); | ||||
|   Result := True; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.FormShow(Sender: TObject); | ||||
|   | ||||
| @@ -53,7 +53,6 @@ object Form1: TForm1 | ||||
|         'https://www.briskbard.com' | ||||
|         'https://frames-per-second.appspot.com/' | ||||
|         'file:///transparency.html') | ||||
|       ExplicitWidth = 909 | ||||
|     end | ||||
|     object Panel2: TPanel | ||||
|       Left = 912 | ||||
| @@ -101,7 +100,6 @@ object Form1: TForm1 | ||||
|         TabOrder = 1 | ||||
|         OnClick = SnapshotBtnClick | ||||
|         OnEnter = SnapshotBtnEnter | ||||
|         ExplicitLeft = 38 | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| @@ -135,7 +133,6 @@ object Form1: TForm1 | ||||
|     OnBeforePopup = chrmosrBeforePopup | ||||
|     OnAfterCreated = chrmosrAfterCreated | ||||
|     OnBeforeClose = chrmosrBeforeClose | ||||
|     OnClose = chrmosrClose | ||||
|     OnGetViewRect = chrmosrGetViewRect | ||||
|     OnGetScreenPoint = chrmosrGetScreenPoint | ||||
|     OnGetScreenInfo = chrmosrGetScreenInfo | ||||
|   | ||||
| @@ -104,7 +104,6 @@ type | ||||
|     procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean); | ||||
|     procedure chrmosrBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect); | ||||
|  | ||||
| @@ -348,11 +347,6 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| begin | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TForm1.chrmosrCursorChange(Sender : TObject; | ||||
|                                      const browser          : ICefBrowser; | ||||
|                                            cursor           : HICON; | ||||
|   | ||||
| @@ -92,7 +92,7 @@ type | ||||
|     procedure Chromium_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium_OnAddressChange(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); | ||||
|     procedure Chromium_OnTitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring); | ||||
|     procedure Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium_OnBeforePopup(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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|  | ||||
| @@ -413,14 +413,12 @@ begin | ||||
|     PageControl1.Pages[TempPageIndex].Caption := title; | ||||
| end; | ||||
|  | ||||
| procedure TMainForm.Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TMainForm.Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| var | ||||
|   TempPageIndex : integer; | ||||
| begin | ||||
|   if GetPageIndex(Sender, TempPageIndex) then | ||||
|     PostMessage(Handle, CEFBROWSER_DESTROYWNDPARENT, 0, TempPageIndex); | ||||
|  | ||||
|   Result := False; | ||||
| end; | ||||
|  | ||||
| procedure TMainForm.Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|   | ||||
| @@ -50,7 +50,8 @@ uses | ||||
|   Windows, Messages, SysUtils, Variants, Classes, Graphics, | ||||
|   Controls, Forms, Dialogs, ExtCtrls, | ||||
|   {$ENDIF} | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, uMainForm; | ||||
|   uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, uMainForm, | ||||
|   uCEFWinControl; | ||||
|  | ||||
| type | ||||
|   TChildForm = class(TForm) | ||||
| @@ -64,7 +65,7 @@ type | ||||
|     procedure Chromium1AfterCreated(Sender: TObject; | ||||
|       const browser: ICefBrowser); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; | ||||
|       out Result: Boolean); | ||||
|       var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1PreKeyEvent(Sender: TObject; | ||||
|       const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: PMsg; | ||||
|       out isKeyboardShortcut, Result: Boolean); | ||||
| @@ -139,10 +140,10 @@ begin | ||||
|   Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]); | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); | ||||
|   Result := False; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1KeyEvent(Sender: TObject; | ||||
|   | ||||
| @@ -34,8 +34,8 @@ | ||||
|         <ResourceBaseClass Value="Form"/> | ||||
|         <IsVisibleTab Value="True"/> | ||||
|         <EditorIndex Value="1"/> | ||||
|         <TopLine Value="58"/> | ||||
|         <CursorPos X="13" Y="97"/> | ||||
|         <TopLine Value="152"/> | ||||
|         <CursorPos X="31" Y="163"/> | ||||
|         <UsageCount Value="21"/> | ||||
|         <Loaded Value="True"/> | ||||
|         <LoadedDesigner Value="True"/> | ||||
| @@ -62,7 +62,7 @@ | ||||
|         <UsageCount Value="10"/> | ||||
|       </Unit5> | ||||
|     </Units> | ||||
|     <JumpHistory Count="28" HistoryIndex="27"> | ||||
|     <JumpHistory Count="29" HistoryIndex="28"> | ||||
|       <Position1> | ||||
|         <Filename Value="uchildform.pas"/> | ||||
|         <Caret Line="61" Column="3" TopLine="54"/> | ||||
| @@ -175,6 +175,10 @@ | ||||
|         <Filename Value="uchildform.pas"/> | ||||
|         <Caret Line="214" Column="46" TopLine="187"/> | ||||
|       </Position28> | ||||
|       <Position29> | ||||
|         <Filename Value="uchildform.pas"/> | ||||
|         <Caret Line="67" Column="79" TopLine="59"/> | ||||
|       </Position29> | ||||
|     </JumpHistory> | ||||
|     <RunParams> | ||||
|       <FormatVersion Value="2"/> | ||||
|   | ||||
| @@ -64,7 +64,7 @@ type | ||||
|     procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|     procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|     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 noJavascriptAccess: Boolean; var Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|     procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|     procedure Chromium1KeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out Result: Boolean); | ||||
|     procedure Chromium1PreKeyEvent(Sender: TObject; const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out isKeyboardShortcut: Boolean; out Result: Boolean); | ||||
|  | ||||
| @@ -151,10 +151,10 @@ begin | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1Close(Sender: TObject; | ||||
|   const browser: ICefBrowser; out Result: Boolean); | ||||
|   const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   PostMessage(Handle, CEFBROWSER_DESTROY, 0, 0); | ||||
|   Result := False; | ||||
|   aAction := cbaDelay; | ||||
| end; | ||||
|  | ||||
| procedure TChildForm.Chromium1KeyEvent(Sender: TObject; | ||||
|   | ||||
| @@ -70,6 +70,9 @@ | ||||
|         <DCC_S>false</DCC_S> | ||||
|         <DCC_F>false</DCC_F> | ||||
|         <DCC_K>false</DCC_K> | ||||
|         <DCC_UnitSearchPath>..\source;$(DCC_UnitSearchPath)</DCC_UnitSearchPath> | ||||
|         <VerInfo_Locale>3082</VerInfo_Locale> | ||||
|         <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=CEF4Delphi;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=CEF4Delphi;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName)</VerInfo_Keys> | ||||
|     </PropertyGroup> | ||||
|     <PropertyGroup Condition="'$(Base_Win32)'!=''"> | ||||
|         <DCC_UsePackage>rtl;vcl;fmx;$(DCC_UsePackage)</DCC_UsePackage> | ||||
| @@ -258,6 +261,8 @@ | ||||
|         <DCCReference Include="..\source\uCEFLinkedWindowParent.pas"/> | ||||
|         <DCCReference Include="..\source\uCEFUrlRequestClientEvents.pas"/> | ||||
|         <DCCReference Include="..\source\uCEFUrlRequestClientComponent.pas"/> | ||||
|         <DCCReference Include="..\source\uCEFOSRIMEHandler.pas"/> | ||||
|         <DCCReference Include="..\source\uCEFAudioHandler.pas"/> | ||||
|         <BuildConfiguration Include="Base"> | ||||
|             <Key>Base</Key> | ||||
|         </BuildConfiguration> | ||||
| @@ -283,9 +288,10 @@ | ||||
|                     <Source Name="MainSource">CEF4Delphi.dpk</Source> | ||||
|                 </Source> | ||||
|                 <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> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dclIPIndyImpl260.bpl">IP Abstraction Indy Implementation Design Time</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\DataExplorerDBXPluginEnt260.bpl">DBExpress Enterprise Data Explorer Integration</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dcloffice2k260.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages> | ||||
|                     <Excluded_Packages Name="$(BDSBIN)\dclofficexp260.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages> | ||||
|                 </Excluded_Packages> | ||||
|             </Delphi.Personality> | ||||
|             <Deployment Version="3"> | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -5,7 +5,7 @@ | ||||
|         <ProjectVersion>18.5</ProjectVersion> | ||||
|         <FrameworkType>VCL</FrameworkType> | ||||
|         <Base>True</Base> | ||||
|         <Config Condition="'$(Config)'==''">Release</Config> | ||||
|         <Config Condition="'$(Config)'==''">Debug</Config> | ||||
|         <Platform Condition="'$(Platform)'==''">Win32</Platform> | ||||
|         <TargetedPlatforms>3</TargetedPlatforms> | ||||
|         <AppType>Package</AppType> | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -3258,12 +3258,34 @@ end; | ||||
| {$ENDIF} | ||||
|  | ||||
| function TChromium.doOnClose(const browser: ICefBrowser): Boolean; | ||||
| var | ||||
|   TempAction : TCefCloseBrowserAction; | ||||
| begin | ||||
|   Result := False; | ||||
|   Result     := False; | ||||
|   TempAction := cbaClose; | ||||
|  | ||||
|   if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|   // TempAction values | ||||
|   // ----------------- | ||||
|   // cbaCancel : stop closing the browser | ||||
|   // cbaClose  : continue closing the browser | ||||
|   // cbaDelay  : stop closing the browser momentarily. Used when the application | ||||
|   //             needs to execute some custom processes before closing the | ||||
|   //             browser. This is usually needed to destroy a TCEFWindowParent | ||||
|   //             in the main thread before closing the browser. | ||||
|   if Assigned(FOnClose) then FOnClose(Self, browser, TempAction); | ||||
|  | ||||
|   if Assigned(FOnClose) then FOnClose(Self, browser, Result); | ||||
|   case TempAction of | ||||
|     cbaCancel : Result := True; | ||||
|  | ||||
|     cbaDelay : | ||||
|       begin | ||||
|         Result := True; | ||||
|         if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|       end; | ||||
|  | ||||
|     else | ||||
|       if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TChromium.doOnBeforeClose(const browser: ICefBrowser); | ||||
|   | ||||
| @@ -106,7 +106,7 @@ type | ||||
|   TOnBeforePopup                  = procedure(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 noJavascriptAccess: Boolean; var Result: Boolean) of object; | ||||
|   TOnAfterCreated                 = procedure(Sender: TObject; const browser: ICefBrowser) of object; | ||||
|   TOnBeforeClose                  = procedure(Sender: TObject; const browser: ICefBrowser) of object; | ||||
|   TOnClose                        = procedure(Sender: TObject; const browser: ICefBrowser; out Result: Boolean) of object; | ||||
|   TOnClose                        = procedure(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction) of object; | ||||
|  | ||||
|   // ICefRequestHandler | ||||
|   TOnBeforeBrowse                 = procedure(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; user_gesture, isRedirect: Boolean; out Result: Boolean) of object; | ||||
|   | ||||
| @@ -81,7 +81,7 @@ type | ||||
|       procedure   OnBeforeCloseMsg(var aMessage : TMessage); message CEF_DOONBEFORECLOSE; | ||||
|       procedure   OnAfterCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED; | ||||
|       {$ENDIF} | ||||
|       procedure   WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
|       procedure   WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
|       procedure   WebBrowser_OnBeforeClose(Sender: TObject; const browser: ICefBrowser); | ||||
|       procedure   WebBrowser_OnAfterCreated(Sender: TObject; const browser: ICefBrowser); | ||||
|  | ||||
| @@ -189,14 +189,14 @@ begin | ||||
|   Result := (FChromium <> nil) and FChromium.Initialized; | ||||
| end; | ||||
|  | ||||
| procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean); | ||||
| procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction); | ||||
| begin | ||||
|   Result := False; | ||||
|   aAction := cbaClose; | ||||
|   {$IFDEF MSWINDOWS} | ||||
|   if assigned(FOnClose) then | ||||
|     begin | ||||
|       PostMessage(Handle, CEF_DOONCLOSE, 0, 0); | ||||
|       Result := True; | ||||
|       aAction := cbaDelay; | ||||
|     end; | ||||
|   {$ENDIF} | ||||
| end; | ||||
|   | ||||
| @@ -350,6 +350,16 @@ type | ||||
|     Build    : uint16; | ||||
|   end; | ||||
|  | ||||
|   // Used in TChromium.Onclose | ||||
|   // ------------------------- | ||||
|   // cbaCancel : stop closing the browser | ||||
|   // cbaClose  : continue closing the browser | ||||
|   // cbaDelay  : stop closing the browser momentarily. Used when the application | ||||
|   //             needs to execute some custom processes before closing the | ||||
|   //             browser. This is usually needed to destroy a TCEFWindowParent | ||||
|   //             in the main thread before closing the browser. | ||||
|   TCefCloseBrowserAction = (cbaClose, cbaDelay, cbaCancel); | ||||
|  | ||||
|   TCefProcessType = (ptBrowser, ptRenderer, ptZygote, ptGPU, ptOther); | ||||
|  | ||||
|   TCefAplicationStatus = (asLoading, | ||||
|   | ||||
| @@ -2829,12 +2829,34 @@ begin | ||||
| end; | ||||
|  | ||||
| function TFMXChromium.doOnClose(const browser: ICefBrowser): Boolean; | ||||
| var | ||||
|   TempAction : TCefCloseBrowserAction; | ||||
| begin | ||||
|   Result := False; | ||||
|   Result     := False; | ||||
|   TempAction := cbaClose; | ||||
|  | ||||
|   if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|   // TempAction values | ||||
|   // ----------------- | ||||
|   // cbaCancel : stop closing the browser | ||||
|   // cbaClose  : continue closing the browser | ||||
|   // cbaDelay  : stop closing the browser momentarily. Used when the application | ||||
|   //             needs to execute some custom processes before closing the | ||||
|   //             browser. This is usually needed to destroy a TCEFWindowParent | ||||
|   //             in the main thread before closing the browser. | ||||
|   if Assigned(FOnClose) then FOnClose(Self, browser, TempAction); | ||||
|  | ||||
|   if Assigned(FOnClose) then FOnClose(Self, browser, Result); | ||||
|   case TempAction of | ||||
|     cbaCancel : Result := True; | ||||
|  | ||||
|     cbaDelay : | ||||
|       begin | ||||
|         Result := True; | ||||
|         if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|       end; | ||||
|  | ||||
|     else | ||||
|       if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True; | ||||
|   end; | ||||
| end; | ||||
|  | ||||
| procedure TFMXChromium.doOnBeforeClose(const browser: ICefBrowser); | ||||
|   | ||||
| @@ -218,14 +218,10 @@ begin | ||||
|   if not(FStopped) then | ||||
|     begin | ||||
|       {$IFDEF MSWINDOWS} | ||||
|       {$IFDEF DELPHI17_UP} | ||||
|       TempHandle := ApplicationHWND; | ||||
|       {$ELSE} | ||||
|       if (Application <> nil) and (Application.MainForm <> nil) then | ||||
|         TempHandle := FmxHandleToHWND(Application.MainForm.Handle) | ||||
|        else | ||||
|         TempHandle := 0; | ||||
|       {$ENDIF} | ||||
|  | ||||
|       if (TempHandle <> 0) then | ||||
|         WinApi.Windows.PostMessage(TempHandle, CEF_PUMPHAVEWORK, 0, LPARAM(delay_ms)); | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| { | ||||
|   "UpdateLazPackages" : [ | ||||
|     { | ||||
|       "ForceNotify" : false, | ||||
|       "InternalVersion" : 1, | ||||
|       "ForceNotify" : true, | ||||
|       "InternalVersion" : 2, | ||||
|       "Name" : "cef4delphi_lazarus.lpk", | ||||
|       "Version" : "73.1.12.0" | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user