diff --git a/demos/MiniBrowser/MiniBrowser.dpr b/demos/MiniBrowser/MiniBrowser.dpr index 09aff154..a82fa321 100644 --- a/demos/MiniBrowser/MiniBrowser.dpr +++ b/demos/MiniBrowser/MiniBrowser.dpr @@ -47,8 +47,8 @@ uses Forms, {$ENDIF } uCEFApplication, - uCEFInterfaces, uCEFMiscFunctions, + uCEFSchemeRegistrar, uMiniBrowser in 'uMiniBrowser.pas' {MiniBrowserFrm}, uTestExtension in 'uTestExtension.pas', uHelloScheme in 'uHelloScheme.pas', @@ -56,9 +56,9 @@ uses {$R *.res} -procedure GlobalCEFApp_OnRegCustomSchemes(const registrar: ICefSchemeRegistrar); +procedure GlobalCEFApp_OnRegCustomSchemes(const registrar: TCefSchemeRegistrarRef); begin - registrar.AddCustomScheme('hello', True, True, False); + registrar.AddCustomScheme('hello', True, True, False, False, False); end; begin diff --git a/demos/MiniBrowser/MiniBrowser.dproj.local b/demos/MiniBrowser/MiniBrowser.dproj.local index e2b7301e..486717c4 100644 --- a/demos/MiniBrowser/MiniBrowser.dproj.local +++ b/demos/MiniBrowser/MiniBrowser.dproj.local @@ -10,8 +10,8 @@ 2017/03/12 17:11:11.000.786,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas 2017/03/13 19:22:41.000.994,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas= 2017/03/13 19:23:05.000.371,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas - 2017/03/15 12:39:07.741,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas - 2017/03/15 12:40:51.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm - 2017/03/15 12:40:51.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas + 2017/03/15 12:39:07.000.741,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas + 2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas + 2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm diff --git a/demos/MiniBrowser/MiniBrowser.dsk b/demos/MiniBrowser/MiniBrowser.dsk index 28efdda7..51b8a3a5 100644 --- a/demos/MiniBrowser/MiniBrowser.dsk +++ b/demos/MiniBrowser/MiniBrowser.dsk @@ -1,14 +1,14 @@ [Closed Files] -File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas',0,1,31,23,63,0,0,, -File_1=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\vcl\Vcl.Dialogs.pas',0,1,6752,22,6771,0,0,, -File_2=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Property Editors\FmxAnimationEditors.pas',0,1,1882,37,1904,0,0,, -File_3=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Property Editors\Indy10\IdDsnPropEdBindingVCL.pas',0,1,789,25,811,0,0,, -File_4=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Experts\ExpertsUIWizard.pas',0,1,540,33,562,0,0,, -File_5=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\XPDUnitTestModule.pas',0,1,135,32,157,0,0,, -File_6=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\data\ems\desktopconsole\EMSManagementConsole.FrameAdd.pas',0,1,478,32,500,0,0,, -File_7=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\ObjRepos\en\DelphiWin32\Vcl.recerror.pas',0,1,75,20,97,0,0,, -File_8=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Graphics32\GR32_Dsgn_Bitmap.pas',0,1,316,34,338,0,0,, -File_9=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Indy10\Builder\Package Generator\MgrPkgGenDBMain.pas',0,1,85,27,107,0,0,, +File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas',0,1,1,1,40,0,0,, +File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,1,1,40,0,0,, +File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,1,25,38,0,0,, +File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas',0,1,10,51,49,0,0,, +File_4=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\vcl\Vcl.Dialogs.pas',0,1,6752,22,6771,0,0,, +File_5=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Property Editors\FmxAnimationEditors.pas',0,1,1882,37,1904,0,0,, +File_6=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Property Editors\Indy10\IdDsnPropEdBindingVCL.pas',0,1,789,25,811,0,0,, +File_7=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\Experts\ExpertsUIWizard.pas',0,1,540,33,562,0,0,, +File_8=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\DUnit\Contrib\DUnitWizard\Source\DelphiExperts\DUnitProject\XPDUnitTestModule.pas',0,1,135,32,157,0,0,, +File_9=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\source\data\ems\desktopconsole\EMSManagementConsole.FrameAdd.pas',0,1,478,32,500,0,0,, [Modules] Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj @@ -50,17 +50,18 @@ ClientHeight=9428 DockedToMainForm=1 BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 -LeftPanelSize=0 +LeftPanelSize=1898 +LeftPanelClients=PropertyInspector,DockSite3 +LeftPanelData=00000800010100000000AA19000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000A12300001100000050726F7065727479496E73706563746F72FFFFFFFF RightPanelSize=2000 RightPanelClients=DockSite2,DockSite4 -RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000110E000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF +RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF BottomPanelSize=0 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002E80600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF -TabDockLeftClients=DockSite3=0,PropertyInspector=1 [View0] CustomEditViewType=TWelcomePageView @@ -69,9 +70,9 @@ WelcomePageURL=bds:/default.htm [View1] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas -CursorX=68 -CursorY=342 -TopLine=356 +CursorX=76 +CursorY=82 +TopLine=1 LeftCol=1 Elisions= Bookmarks= @@ -80,9 +81,9 @@ EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\d [View2] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr -CursorX=3 -CursorY=86 -TopLine=49 +CursorX=1 +CursorY=41 +TopLine=22 LeftCol=1 Elisions= Bookmarks= @@ -102,11 +103,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -150,11 +151,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=3117 +Height=4226 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=3117 +ClientHeight=4226 TBDockHeight=5897 LRDockWidth=2352 Dockable=1 @@ -167,14 +168,14 @@ Visible=0 Docked=1 State=0 Left=0 -Top=23 -Width=10000 -Height=1570 +Top=0 +Width=2773 +Height=1424 MaxLeft=-1 MaxTop=-1 -ClientWidth=10000 -ClientHeight=1570 -TBDockHeight=1570 +ClientWidth=2773 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -188,11 +189,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=5448 +Height=4339 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=5448 +ClientHeight=4339 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -242,8 +243,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-121 +Top=-74 Width=1844 Height=3139 MaxLeft=-1 @@ -296,22 +297,22 @@ StayOnTop=0 [PropertyInspector] PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 -Left=1 -Top=24 +Left=0 +Top=362 Width=1898 -Height=9148 +Height=5370 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=9148 +ClientHeight=5370 TBDockHeight=7119 LRDockWidth=1898 Dockable=1 StayOnTop=0 -SplitPos=119 +SplitPos=111 [frmDesignPreview] PercentageSizes=1 @@ -382,11 +383,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -401,11 +402,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -424,11 +425,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -443,11 +444,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -565,11 +566,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1345 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 +ClientHeight=1121 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -590,12 +591,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1773 -Height=6693 +Width=1898 +Height=3498 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6693 +ClientWidth=1898 +ClientHeight=3498 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -677,12 +678,12 @@ State=0 Left=0 Top=23 Width=3820 -Height=1648 +Height=1424 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1648 -TBDockHeight=1648 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -701,11 +702,11 @@ State=0 Left=0 Top=23 Width=2000 -Height=3419 +Height=4529 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=3419 +ClientHeight=4529 TBDockHeight=7119 LRDockWidth=2000 Dockable=1 @@ -715,21 +716,21 @@ ActiveTabID=ProjectManager TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm [DockSite3] -HostDockSite=LeftDockTabSet +HostDockSite=DockLeftPanel DockSiteType=1 PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 Left=0 -Top=0 +Top=23 Width=1898 -Height=7119 +Height=3498 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6693 +ClientWidth=1898 +ClientHeight=3498 TBDockHeight=7119 LRDockWidth=1898 Dockable=1 @@ -747,13 +748,13 @@ Visible=1 Docked=1 State=0 Left=0 -Top=355 +Top=454 Width=2000 -Height=5448 +Height=4339 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=5448 +ClientHeight=4339 TBDockHeight=7119 LRDockWidth=2000 Dockable=1 diff --git a/demos/MiniBrowser/MiniBrowser.identcache b/demos/MiniBrowser/MiniBrowser.identcache index 2093c12c..1f8ccf66 100644 Binary files a/demos/MiniBrowser/MiniBrowser.identcache and b/demos/MiniBrowser/MiniBrowser.identcache differ diff --git a/demos/MiniBrowser/MiniBrowser.stat b/demos/MiniBrowser/MiniBrowser.stat index 4e79b76c..b6bd1c88 100644 --- a/demos/MiniBrowser/MiniBrowser.stat +++ b/demos/MiniBrowser/MiniBrowser.stat @@ -1,10 +1,10 @@ [Stats] -EditorSecs=15680 -DesignerSecs=1469 -InspectorSecs=1128 -CompileSecs=710437 -OtherSecs=2298 +EditorSecs=16035 +DesignerSecs=1777 +InspectorSecs=1204 +CompileSecs=764079 +OtherSecs=2346 StartTime=11/02/2017 10:51:15 RealKeys=0 EffectiveKeys=0 -DebugSecs=7901 +DebugSecs=8921 diff --git a/demos/MiniBrowser/uMiniBrowser.dfm b/demos/MiniBrowser/uMiniBrowser.dfm index c3869709..16930083 100644 --- a/demos/MiniBrowser/uMiniBrowser.dfm +++ b/demos/MiniBrowser/uMiniBrowser.dfm @@ -2,7 +2,7 @@ object MiniBrowserFrm: TMiniBrowserFrm Left = 0 Top = 0 Caption = 'MiniBrowser' - ClientHeight = 681 + ClientHeight = 716 ClientWidth = 1089 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -19,7 +19,7 @@ object MiniBrowserFrm: TMiniBrowserFrm Left = 1084 Top = 41 Width = 5 - Height = 621 + Height = 656 Align = alRight Visible = False ExplicitLeft = 0 @@ -109,7 +109,7 @@ object MiniBrowserFrm: TMiniBrowserFrm object URLEditPnl: TPanel Left = 133 Top = 0 - Width = 915 + Width = 883 Height = 41 Align = alClient BevelOuter = bvNone @@ -117,36 +117,36 @@ object MiniBrowserFrm: TMiniBrowserFrm Padding.Bottom = 8 ShowCaption = False TabOrder = 1 - ExplicitWidth = 844 + ExplicitWidth = 915 object URLCbx: TComboBox Left = 0 Top = 9 - Width = 915 + Width = 883 Height = 21 Align = alClient TabOrder = 0 Text = 'https://www.google.com' - OnKeyUp = URLCbxKeyUp - OnSelect = URLCbxSelect Items.Strings = ( 'https://www.google.com' 'hello://world/' 'https://www.whatismybrowser.com/detect/what-http-headers-is-my-b' + - 'rowser-sending') - ExplicitWidth = 948 + 'rowser-sending' + 'https://www.w3schools.com/js/tryit.asp?filename=tryjs_win_close') + ExplicitWidth = 915 end end object ConfigPnl: TPanel - Left = 1048 + Left = 1016 Top = 0 - Width = 41 + Width = 73 Height = 41 Align = alRight BevelOuter = bvNone TabOrder = 2 + ExplicitLeft = 1015 object ConfigBtn: TButton - Left = 8 + Left = 40 Top = 8 Width = 25 Height = 25 @@ -160,34 +160,52 @@ object MiniBrowserFrm: TMiniBrowserFrm TabOrder = 0 OnClick = ConfigBtnClick end + object GoBtn: TButton + Left = 8 + Top = 8 + Width = 25 + Height = 25 + Caption = #9658 + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -17 + Font.Name = 'Arial' + Font.Style = [fsBold] + ParentFont = False + TabOrder = 1 + OnClick = GoBtnClick + end end end object CEFWindowParent1: TCEFWindowParent Left = 0 Top = 41 Width = 1084 - Height = 621 + Height = 656 Align = alClient TabOrder = 1 + ExplicitHeight = 621 end object DevTools: TCEFWindowParent Left = 1089 Top = 41 Width = 0 - Height = 621 + Height = 656 Align = alRight TabOrder = 2 Visible = False + ExplicitHeight = 621 end object StatusBar1: TStatusBar Left = 0 - Top = 662 + Top = 697 Width = 1089 Height = 19 Panels = < item Width = 50 end> + ExplicitTop = 662 end object Chromium1: TChromium OnTextResultAvailable = Chromium1TextResultAvailable diff --git a/demos/MiniBrowser/uMiniBrowser.pas b/demos/MiniBrowser/uMiniBrowser.pas index a9a90c3d..6ac97ff1 100644 --- a/demos/MiniBrowser/uMiniBrowser.pas +++ b/demos/MiniBrowser/uMiniBrowser.pas @@ -86,6 +86,7 @@ type DevTools1: TMenuItem; N1: TMenuItem; Preferences1: TMenuItem; + GoBtn: TButton; procedure FormShow(Sender: TObject); procedure BackBtnClick(Sender: TObject); procedure ForwardBtnClick(Sender: TObject); @@ -114,13 +115,11 @@ type const browser: ICefBrowser; const value: ustring); procedure Chromium1TextResultAvailable(Sender: TObject; const aText: string); - procedure URLCbxKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); - procedure URLCbxSelect(Sender: TObject); procedure PopupMenu1Popup(Sender: TObject); procedure DevTools1Click(Sender: TObject); procedure Preferences1Click(Sender: TObject); procedure ConfigBtnClick(Sender: TObject); + procedure GoBtnClick(Sender: TObject); protected procedure AddURL(const aURL : string); @@ -157,6 +156,11 @@ begin Chromium1.GoForward; end; +procedure TMiniBrowserFrm.GoBtnClick(Sender: TObject); +begin + Chromium1.LoadURL(URLCbx.Text); +end; + procedure TMiniBrowserFrm.ReloadBtnClick(Sender: TObject); begin Chromium1.Reload; @@ -340,17 +344,6 @@ begin end; end; -procedure TMiniBrowserFrm.URLCbxKeyUp(Sender: TObject; var Key: Word; - Shift: TShiftState); -begin - if (Key = 13) then Chromium1.LoadURL(URLCbx.Text); -end; - -procedure TMiniBrowserFrm.URLCbxSelect(Sender: TObject); -begin - Chromium1.LoadURL(URLCbx.Text); -end; - procedure TMiniBrowserFrm.ConfigBtnClick(Sender: TObject); var TempPoint : TPoint; diff --git a/demos/SimpleBrowser/SimpleBrowser.dsk b/demos/SimpleBrowser/SimpleBrowser.dsk index 9be7ee50..ec8b2b0c 100644 --- a/demos/SimpleBrowser/SimpleBrowser.dsk +++ b/demos/SimpleBrowser/SimpleBrowser.dsk @@ -50,7 +50,7 @@ RightPanelClients=DockSite2 RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF BottomPanelSize=0 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B36000000000000020F06000000000000FFFFFFFF +BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF @@ -86,11 +86,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -151,14 +151,14 @@ Visible=0 Docked=1 State=0 Left=0 -Top=23 +Top=0 Width=2773 -Height=1345 +Height=1424 MaxLeft=-1 MaxTop=-1 ClientWidth=2773 -ClientHeight=1345 -TBDockHeight=1345 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -171,12 +171,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1875 -Height=6738 +Width=2000 +Height=4339 MaxLeft=-1 MaxTop=-1 -ClientWidth=1875 -ClientHeight=6738 +ClientWidth=2000 +ClientHeight=4339 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -226,8 +226,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-148 +Top=-137 Width=1844 Height=3139 MaxLeft=-1 @@ -283,14 +283,14 @@ Create=1 Visible=0 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=362 Width=1898 -Height=7164 +Height=5370 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=5370 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -306,11 +306,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=5964 LRDockWidth=2508 Dockable=1 @@ -322,8 +322,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-946 -Top=1 +Left=-898 +Top=-137 Width=2844 Height=6200 MaxLeft=-1 @@ -341,8 +341,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=287 +Left=-1026 +Top=-137 Width=273 Height=359 MaxLeft=-1 @@ -366,11 +366,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -385,11 +385,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -408,11 +408,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -427,11 +427,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -446,11 +446,11 @@ State=0 Left=0 Top=0 Width=2336 -Height=942 +Height=1177 MaxLeft=-1 MaxTop=-1 ClientWidth=2336 -ClientHeight=942 +ClientHeight=1177 TBDockHeight=2321 LRDockWidth=2820 Dockable=1 @@ -511,11 +511,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=7148 Dockable=1 @@ -527,8 +527,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=249 -Top=709 +Left=0 +Top=0 Width=2859 Height=3206 MaxLeft=-1 @@ -549,11 +549,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1043 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1043 +ClientHeight=1121 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -574,12 +574,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1773 -Height=6738 +Width=1898 +Height=9170 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=9170 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -594,11 +594,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=5305 Dockable=1 @@ -659,14 +659,14 @@ Visible=0 Docked=1 State=0 Left=0 -Top=23 +Top=0 Width=3820 -Height=1345 +Height=1424 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1345 -TBDockHeight=1345 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -707,13 +707,13 @@ Visible=0 Docked=1 State=0 Left=0 -Top=0 +Top=23 Width=1898 -Height=7164 +Height=9170 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=9170 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -731,13 +731,13 @@ Visible=0 Docked=1 State=0 Left=0 -Top=0 +Top=454 Width=2000 -Height=7164 +Height=4339 MaxLeft=-1 MaxTop=-1 -ClientWidth=1875 -ClientHeight=6738 +ClientWidth=2000 +ClientHeight=4339 TBDockHeight=7164 LRDockWidth=2000 Dockable=1 diff --git a/demos/SimpleBrowser/SimpleBrowser.stat b/demos/SimpleBrowser/SimpleBrowser.stat index f5e37285..b670a319 100644 --- a/demos/SimpleBrowser/SimpleBrowser.stat +++ b/demos/SimpleBrowser/SimpleBrowser.stat @@ -1,9 +1,9 @@ [Stats] -EditorSecs=2475 +EditorSecs=2478 DesignerSecs=267 InspectorSecs=136 -CompileSecs=119220 -OtherSecs=449 +CompileSecs=124554 +OtherSecs=456 StartTime=22/01/2017 14:51:01 RealKeys=0 EffectiveKeys=0 diff --git a/demos/SimpleOSRBrowser/SimpleOSRBrowser.dsk b/demos/SimpleOSRBrowser/SimpleOSRBrowser.dsk index 02d2966c..9faf9cdc 100644 --- a/demos/SimpleOSRBrowser/SimpleOSRBrowser.dsk +++ b/demos/SimpleOSRBrowser/SimpleOSRBrowser.dsk @@ -41,10 +41,10 @@ TopPanelSize=0 LeftPanelSize=0 RightPanelSize=2000 RightPanelClients=DockSite2 -RightPanelData=00000800010100000000551500000000000001D00700000000000001000000009D1D000009000000446F636B5369746532FFFFFFFF -BottomPanelSize=1475 +RightPanelData=000008000101000000001E1500000000000001D0070000000000000100000000511D000009000000446F636B5369746532FFFFFFFF +BottomPanelSize=1551 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF @@ -69,11 +69,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -117,11 +117,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=7276 +Height=7197 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7276 +ClientHeight=7197 TBDockHeight=5897 LRDockWidth=2352 Dockable=1 @@ -136,12 +136,12 @@ State=0 Left=0 Top=23 Width=10000 -Height=1267 +Height=1345 MaxLeft=-1 MaxTop=-1 ClientWidth=10000 -ClientHeight=1267 -TBDockHeight=1267 +ClientHeight=1345 +TBDockHeight=1345 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -154,12 +154,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1875 -Height=6738 +Width=2000 +Height=4339 MaxLeft=-1 MaxTop=-1 -ClientWidth=1875 -ClientHeight=6738 +ClientWidth=2000 +ClientHeight=4339 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -209,8 +209,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-148 +Top=-137 Width=1844 Height=3139 MaxLeft=-1 @@ -266,14 +266,14 @@ Create=1 Visible=0 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=362 Width=1898 -Height=7164 +Height=5370 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=5370 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -289,11 +289,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=5964 LRDockWidth=2508 Dockable=1 @@ -305,8 +305,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-946 -Top=1 +Left=-898 +Top=-137 Width=2844 Height=6200 MaxLeft=-1 @@ -324,8 +324,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=287 +Left=-1026 +Top=-137 Width=273 Height=359 MaxLeft=-1 @@ -349,11 +349,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -368,11 +368,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -391,11 +391,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -410,11 +410,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -429,11 +429,11 @@ State=0 Left=0 Top=0 Width=2336 -Height=942 +Height=1177 MaxLeft=-1 MaxTop=-1 ClientWidth=2336 -ClientHeight=942 +ClientHeight=1177 TBDockHeight=2321 LRDockWidth=2820 Dockable=1 @@ -494,11 +494,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=7148 Dockable=1 @@ -510,8 +510,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=249 -Top=709 +Left=0 +Top=0 Width=2859 Height=3206 MaxLeft=-1 @@ -532,11 +532,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=964 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=964 +ClientHeight=1121 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -557,12 +557,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1773 -Height=6738 +Width=1898 +Height=9170 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=9170 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -577,11 +577,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=5305 Dockable=1 @@ -642,14 +642,14 @@ Visible=0 Docked=1 State=0 Left=0 -Top=23 +Top=0 Width=3820 -Height=1267 +Height=1424 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1267 -TBDockHeight=1267 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -668,11 +668,11 @@ State=0 Left=0 Top=23 Width=2000 -Height=7578 +Height=7500 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7578 +ClientHeight=7500 TBDockHeight=7164 LRDockWidth=2000 Dockable=1 @@ -690,13 +690,13 @@ Visible=0 Docked=1 State=0 Left=0 -Top=0 +Top=23 Width=1898 -Height=7164 +Height=9170 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=9170 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -714,13 +714,13 @@ Visible=0 Docked=1 State=0 Left=0 -Top=0 +Top=454 Width=2000 -Height=7164 +Height=4339 MaxLeft=-1 MaxTop=-1 -ClientWidth=1875 -ClientHeight=6738 +ClientWidth=2000 +ClientHeight=4339 TBDockHeight=7164 LRDockWidth=2000 Dockable=1 diff --git a/demos/SimpleOSRBrowser/SimpleOSRBrowser.stat b/demos/SimpleOSRBrowser/SimpleOSRBrowser.stat index 1830f226..5f86bdfb 100644 --- a/demos/SimpleOSRBrowser/SimpleOSRBrowser.stat +++ b/demos/SimpleOSRBrowser/SimpleOSRBrowser.stat @@ -2,8 +2,8 @@ EditorSecs=2193 DesignerSecs=210 InspectorSecs=61 -CompileSecs=119428 -OtherSecs=334 +CompileSecs=127489 +OtherSecs=357 StartTime=22/01/2017 17:35:20 RealKeys=0 EffectiveKeys=0 diff --git a/source/CEF4Delphi.dpk b/source/CEF4Delphi.dpk index 11e5f64c..85125c67 100644 --- a/source/CEF4Delphi.dpk +++ b/source/CEF4Delphi.dpk @@ -41,7 +41,6 @@ contains uCEFMiscFunctions in 'uCEFMiscFunctions.pas', uCEFLibFunctions in 'uCEFLibFunctions.pas', uCEFApplication in 'uCEFApplication.pas', - uCEFBase in 'uCEFBase.pas', uCEFSchemeRegistrar in 'uCEFSchemeRegistrar.pas', uCEFCommandLine in 'uCEFCommandLine.pas', uCEFClient in 'uCEFClient.pas', @@ -149,6 +148,8 @@ contains uCEFX509Certificate in 'uCEFX509Certificate.pas', uCEFSSLStatus in 'uCEFSSLStatus.pas', uCEFSelectClientCertificateCallback in 'uCEFSelectClientCertificateCallback.pas', - uCEFChromiumWindow in 'uCEFChromiumWindow.pas'; + uCEFChromiumWindow in 'uCEFChromiumWindow.pas', + uCEFBaseRefCounted in 'uCEFBaseRefCounted.pas', + uCEFBaseScopedWrapper in 'uCEFBaseScopedWrapper.pas'; end. diff --git a/source/CEF4Delphi.dproj b/source/CEF4Delphi.dproj index 4566b813..8fdb431d 100644 --- a/source/CEF4Delphi.dproj +++ b/source/CEF4Delphi.dproj @@ -99,7 +99,6 @@ - @@ -208,6 +207,8 @@ + + Cfg_2 Base @@ -249,22 +250,13 @@ true - + CEF4Delphi.bpl true - - - 0 - .dll;.bpl - - - 1 - .dylib - - + Contents\Resources @@ -578,7 +570,16 @@ 1 - + + + 0 + .dll;.bpl + + + 1 + .dylib + + diff --git a/source/CEF4Delphi.dproj.local b/source/CEF4Delphi.dproj.local index 22263a76..6fef4fab 100644 --- a/source/CEF4Delphi.dproj.local +++ b/source/CEF4Delphi.dproj.local @@ -273,5 +273,8 @@ 2017/01/05 09:46:44.000.222,C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas= 2017/01/05 10:34:46.000.529,=C:\Program Files\Embarcadero\Studio\17.0\cef3\uCEFChromiumWindow.pas 2017/01/22 10:37:38.000.090,C:\Program Files\Embarcadero\Studio\17.0\cef3\CEF4Delphi.dproj=C:\Program Files\Embarcadero\Studio\17.0\cef3\cef3.dproj + 2017/03/16 09:32:10.000.622,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBaseRefCounted.pas + 2017/03/16 09:32:22.000.431,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBaseScopedWrapper.pas + 2017/03/16 09:32:54.000.567,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBase.pas= diff --git a/source/CEF4Delphi.dsk b/source/CEF4Delphi.dsk index eef79bcd..b562fe5d 100644 --- a/source/CEF4Delphi.dsk +++ b/source/CEF4Delphi.dsk @@ -1,48 +1,27 @@ [Closed Files] -File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomVisitor.pas',0,1,107,50,130,0,0,, -File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDeleteCookiesCallback.pas',0,1,103,56,126,0,0,, -File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFPDFPrintCallback.pas',0,1,102,42,123,0,0,, -File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFStringVisitor.pas',0,1,110,42,131,0,0,, -File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,189,54,219,0,0,, -File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,264,103,802,0,0,, -File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFApplication.pas',0,1,184,1,193,0,0,, -File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFMiscFunctions.pas',0,1,124,10,124,0,0,, -File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,107,60,117,0,0,, -File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFLibFunctions.pas',0,1,133,3,153,0,0,, +File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,31,80,57,0,0,, +File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,1995,70,2009,0,0,, +File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,53,30,76,0,0,, +File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFMiscFunctions.pas',0,1,1,1,1,0,0,, +File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFLibFunctions.pas',0,1,1,1,1,0,0,, +File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFResourceHandler.pas',0,1,1,1,1,0,0,, +File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFSchemeRegistrar.pas',0,1,1,1,1,0,0,, +File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFLibFunctions.pas',0,1,1,1,1,0,0,, +File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFResourceHandler.pas',0,1,1,1,1,0,0,, +File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi_new\source\uCEFSchemeRegistrar.pas',0,1,1,1,1,0,0,, [Modules] -Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas -Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas -Module2=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas -Module3=default.htm -Count=4 +Module0=default.htm +Count=1 EditWindowCount=1 -[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas] -ModuleType=TSourceModule -FormState=0 -FormOnTop=0 - -[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas] -ModuleType=TSourceModule -FormState=0 -FormOnTop=0 - -[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas] -ModuleType=TSourceModule -FormState=0 -FormOnTop=0 - [default.htm] ModuleType=TURLModule [EditWindow0] -ViewCount=4 -CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas +ViewCount=1 +CurrentView=0 View0=0 -View1=1 -View2=2 -View3=3 PercentageSizes=1 Create=1 Visible=1 @@ -61,54 +40,20 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 LeftPanelSize=0 RightPanelSize=2000 -RightPanelClients=DockSite2 -RightPanelData=00000800010100000000DE1300000000000001D0070000000000000100000000951B000009000000446F636B5369746532FFFFFFFF -BottomPanelSize=1996 +RightPanelClients=DockSite2,DockSite4 +RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF +BottomPanelSize=0 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002CC0700000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF TabDockLeftClients=PropertyInspector=0,DockSite3=1 -TabDockRightClients=DockSite4=0 [View0] CustomEditViewType=TWelcomePageView WelcomePageURL=bds:/default.htm -[View1] -CustomEditViewType=TEditView -Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas -CursorX=87 -CursorY=1578 -TopLine=1570 -LeftCol=1 -Elisions= -Bookmarks= -EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas - -[View2] -CustomEditViewType=TEditView -Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas -CursorX=57 -CursorY=268 -TopLine=244 -LeftCol=1 -Elisions= -Bookmarks= -EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas - -[View3] -CustomEditViewType=TEditView -Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas -CursorX=30 -CursorY=256 -TopLine=221 -LeftCol=1 -Elisions= -Bookmarks= -EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas - [Watches] Count=0 @@ -171,11 +116,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6738 +Height=4226 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6738 +ClientHeight=4226 TBDockHeight=5897 LRDockWidth=2352 Dockable=1 @@ -184,18 +129,18 @@ StayOnTop=0 [MessageView] PercentageSizes=1 Create=1 -Visible=1 +Visible=0 Docked=1 State=0 Left=0 -Top=23 -Width=10000 -Height=1805 +Top=0 +Width=2773 +Height=1424 MaxLeft=-1 MaxTop=-1 -ClientWidth=10000 -ClientHeight=1805 -TBDockHeight=1805 +ClientWidth=2773 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -263,8 +208,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-148 +Top=-137 Width=1844 Height=3139 MaxLeft=-1 @@ -320,14 +265,14 @@ Create=1 Visible=0 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=362 Width=1898 -Height=7164 +Height=5370 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=5370 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -343,11 +288,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=5964 LRDockWidth=2508 Dockable=1 @@ -359,8 +304,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-946 -Top=1 +Left=-898 +Top=-137 Width=2844 Height=6200 MaxLeft=-1 @@ -378,8 +323,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-1152 -Top=243 +Left=-1026 +Top=-137 Width=273 Height=359 MaxLeft=-1 @@ -483,11 +428,11 @@ State=0 Left=0 Top=0 Width=2336 -Height=942 +Height=1177 MaxLeft=-1 MaxTop=-1 ClientWidth=2336 -ClientHeight=942 +ClientHeight=1177 TBDockHeight=2321 LRDockWidth=2820 Dockable=1 @@ -548,11 +493,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=7148 Dockable=1 @@ -564,8 +509,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=249 -Top=709 +Left=0 +Top=0 Width=2859 Height=3206 MaxLeft=-1 @@ -612,11 +557,11 @@ State=0 Left=0 Top=0 Width=1898 -Height=7018 +Height=9170 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7018 +ClientHeight=9170 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -631,11 +576,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6816 +Height=6861 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6816 +ClientHeight=6861 TBDockHeight=4888 LRDockWidth=5305 Dockable=1 @@ -696,7 +641,7 @@ Visible=0 Docked=1 State=0 Left=0 -Top=23 +Top=0 Width=3820 Height=1424 MaxLeft=-1 @@ -722,12 +667,12 @@ State=0 Left=0 Top=23 Width=2000 -Height=7040 +Height=4529 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7040 -TBDockHeight=7119 +ClientHeight=4529 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 @@ -743,14 +688,14 @@ Create=1 Visible=0 Docked=1 State=0 -Left=1 -Top=24 +Left=0 +Top=23 Width=1898 -Height=7018 +Height=9170 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7018 +ClientHeight=9170 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -760,11 +705,11 @@ ActiveTabID=StructureView TabDockClients=StructureView,ClassBrowserTool [DockSite4] -HostDockSite=RightTabDock +HostDockSite=DockRightPanel DockSiteType=1 PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 Left=0 @@ -775,7 +720,7 @@ MaxLeft=-1 MaxTop=-1 ClientWidth=2000 ClientHeight=4339 -TBDockHeight=7119 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 diff --git a/source/CEF4Delphi.identcache b/source/CEF4Delphi.identcache index 7b2ce48e..b222cbf2 100644 Binary files a/source/CEF4Delphi.identcache and b/source/CEF4Delphi.identcache differ diff --git a/source/CEF4Delphi.stat b/source/CEF4Delphi.stat index e4d254e5..bd345bb7 100644 --- a/source/CEF4Delphi.stat +++ b/source/CEF4Delphi.stat @@ -1,9 +1,9 @@ [Stats] -EditorSecs=59267 +EditorSecs=59984 DesignerSecs=14 -InspectorSecs=9 -CompileSecs=1013650 -OtherSecs=5108 +InspectorSecs=11 +CompileSecs=1099139 +OtherSecs=5315 StartTime=22/01/2017 10:49:52 RealKeys=0 EffectiveKeys=0 diff --git a/source/uCEFApplication.pas b/source/uCEFApplication.pas index be334978..2dedd3fb 100644 --- a/source/uCEFApplication.pas +++ b/source/uCEFApplication.pas @@ -52,7 +52,18 @@ uses {$ELSE} Windows, Classes, {$ENDIF} - uCEFTypes, uCEFInterfaces, uCEFBase; + uCEFTypes, uCEFInterfaces, uCEFBaseRefCounted, uCEFSchemeRegistrar; + +const + CEF_SUPPORTED_VERSION_MAJOR = 3; + CEF_SUPPORTED_VERSION_MINOR = 2987; + CEF_SUPPORTED_VERSION_RELEASE = 1594; + CEF_SUPPORTED_VERSION_BUILD = 0; + + CEF_CHROMEELF_VERSION_MAJOR = 57; + CEF_CHROMEELF_VERSION_MINOR = 0; + CEF_CHROMEELF_VERSION_RELEASE = 2987; + CEF_CHROMEELF_VERSION_BUILD = 98; type TInternalApp = class; @@ -180,7 +191,7 @@ type function GetChromeVersion : string; procedure App_OnBeforeCommandLineProc(const processType: ustring; const commandLine: ICefCommandLine); - procedure App_OnRegCustomSchemes(const registrar: ICefSchemeRegistrar); + procedure App_OnRegCustomSchemes(const registrar: TCefSchemeRegistrarRef); procedure App_OnGetResourceBundleHandler(var aCefResourceBundleHandler : ICefResourceBundleHandler); procedure App_OnGetBrowserProcessHandler(var aCefBrowserProcessHandler : ICefBrowserProcessHandler); procedure App_OnGetRenderProcessHandler(var aCefRenderProcessHandler : ICefRenderProcessHandler); @@ -243,10 +254,10 @@ type property LibCef : string read FLibCef write FLibCef; end; - TCefAppOwn = class(TCefBaseOwn, ICefApp) + TCefAppOwn = class(TCefBaseRefCountedOwn, ICefApp) protected procedure OnBeforeCommandLineProcessing(const processType: ustring; const commandLine: ICefCommandLine); virtual; abstract; - procedure OnRegisterCustomSchemes(const registrar: ICefSchemeRegistrar); virtual; abstract; + procedure OnRegisterCustomSchemes(const registrar: TCefSchemeRegistrarRef); virtual; abstract; function GetResourceBundleHandler: ICefResourceBundleHandler; virtual; abstract; function GetBrowserProcessHandler: ICefBrowserProcessHandler; virtual; abstract; function GetRenderProcessHandler: ICefRenderProcessHandler; virtual; abstract; @@ -264,7 +275,7 @@ type FOnGetRenderProcessHandler : TOnGetRenderProcessHandler; procedure OnBeforeCommandLineProcessing(const processType: ustring; const commandLine: ICefCommandLine); override; - procedure OnRegisterCustomSchemes(const registrar: ICefSchemeRegistrar); override; + procedure OnRegisterCustomSchemes(const registrar: TCefSchemeRegistrarRef); override; function GetResourceBundleHandler: ICefResourceBundleHandler; override; function GetBrowserProcessHandler: ICefBrowserProcessHandler; override; function GetRenderProcessHandler: ICefRenderProcessHandler; override; @@ -290,20 +301,7 @@ uses {$ELSE} Math, {$IFDEF DELPHI12_UP}IOUtils,{$ENDIF} SysUtils, {$ENDIF} - uCEFLibFunctions, uCEFMiscFunctions, uCEFSchemeRegistrar, uCEFCommandLine, - uCEFConstants; - -const - CEF_SUPPORTED_VERSION_MAJOR = 3; - CEF_SUPPORTED_VERSION_MINOR = 2924; - CEF_SUPPORTED_VERSION_RELEASE = 1575; - CEF_SUPPORTED_VERSION_BUILD = 0; - - CEF_CHROMEELF_VERSION_MAJOR = 56; - CEF_CHROMEELF_VERSION_MINOR = 0; - CEF_CHROMEELF_VERSION_RELEASE = 2924; - CEF_CHROMEELF_VERSION_BUILD = 76; - + uCEFLibFunctions, uCEFMiscFunctions, uCEFCommandLine, uCEFConstants, uCEFSchemeHandlerFactory; constructor TCefApplication.Create(aUpdateChromeVer : boolean); begin @@ -878,7 +876,7 @@ begin end; end; -procedure TCefApplication.App_OnRegCustomSchemes(const registrar: ICefSchemeRegistrar); +procedure TCefApplication.App_OnRegCustomSchemes(const registrar: TCefSchemeRegistrarRef); begin if assigned(FOnRegisterCustomSchemes) then FOnRegisterCustomSchemes(registrar); end; @@ -1429,6 +1427,8 @@ begin cef_string_userfree_wide_free := GetProcAddress(FLibHandle, 'cef_string_userfree_wide_free'); cef_string_userfree_utf8_free := GetProcAddress(FLibHandle, 'cef_string_userfree_utf8_free'); cef_string_userfree_utf16_free := GetProcAddress(FLibHandle, 'cef_string_userfree_utf16_free'); + cef_string_utf16_to_lower := GetProcAddress(FLibHandle, 'cef_string_utf16_to_lower'); + cef_string_utf16_to_upper := GetProcAddress(FLibHandle, 'cef_string_utf16_to_upper'); Result := assigned(cef_string_wide_set) and assigned(cef_string_utf8_set) and @@ -1452,7 +1452,9 @@ begin assigned(cef_string_userfree_utf16_alloc) and assigned(cef_string_userfree_wide_free) and assigned(cef_string_userfree_utf8_free) and - assigned(cef_string_userfree_utf16_free); + assigned(cef_string_userfree_utf16_free) and + assigned(cef_string_utf16_to_lower) and + assigned(cef_string_utf16_to_upper); end; function TCefApplication.Load_cef_thread_internal_h : boolean; @@ -1491,16 +1493,31 @@ end; // TCefAppOwn procedure cef_app_on_before_command_line_processing(self: PCefApp; - const process_type: PCefString; command_line: PCefCommandLine); stdcall; + const process_type: PCefString; + command_line: PCefCommandLine); stdcall; begin - with TCefAppOwn(CefGetObject(self)) do - OnBeforeCommandLineProcessing(CefString(process_type), TCefCommandLineRef.UnWrap(command_line)); + TCefAppOwn(CefGetObject(self)).OnBeforeCommandLineProcessing(CefString(process_type), + TCefCommandLineRef.UnWrap(command_line)); end; procedure cef_app_on_register_custom_schemes(self: PCefApp; registrar: PCefSchemeRegistrar); stdcall; +var + TempWrapper : TCefSchemeRegistrarRef; begin - with TCefAppOwn(CefGetObject(self)) do - OnRegisterCustomSchemes(TCefSchemeRegistrarRef.UnWrap(registrar)); + TempWrapper := nil; + + try + try + TempWrapper := TCefSchemeRegistrarRef.Create(registrar); + + TCefAppOwn(CefGetObject(self)).OnRegisterCustomSchemes(TempWrapper); + except + on e : exception do + OutputDebugMessage('cef_app_on_register_custom_schemes error: ' + e.Message); + end; + finally + if (TempWrapper <> nil) then FreeAndNil(TempWrapper); + end; end; function cef_app_get_resource_bundle_handler(self: PCefApp): PCefResourceBundleHandler; stdcall; @@ -1540,7 +1557,7 @@ begin if Assigned(FOnBeforeCommandLineProcessing) then FOnBeforeCommandLineProcessing(processType, commandLine); end; -procedure TInternalApp.OnRegisterCustomSchemes(const registrar: ICefSchemeRegistrar); +procedure TInternalApp.OnRegisterCustomSchemes(const registrar: TCefSchemeRegistrarRef); begin if Assigned(FOnRegisterCustomSchemes) then FOnRegisterCustomSchemes(registrar); end; diff --git a/source/uCEFAuthCallback.pas b/source/uCEFAuthCallback.pas index df44277a..b7d35e17 100644 --- a/source/uCEFAuthCallback.pas +++ b/source/uCEFAuthCallback.pas @@ -47,10 +47,10 @@ unit uCEFAuthCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefAuthCallbackRef = class(TCefBaseRef, ICefAuthCallback) + TCefAuthCallbackRef = class(TCefBaseRefCountedRef, ICefAuthCallback) protected procedure Cont(const username, password: ustring); procedure Cancel; diff --git a/source/uCEFBase.pas b/source/uCEFBaseRefCounted.pas similarity index 55% rename from source/uCEFBase.pas rename to source/uCEFBaseRefCounted.pas index f41772be..7230d48d 100644 --- a/source/uCEFBase.pas +++ b/source/uCEFBaseRefCounted.pas @@ -35,7 +35,7 @@ * *) -unit uCEFBase; +unit uCEFBaseRefCounted; {$IFNDEF CPUX64} {$ALIGN ON} @@ -50,7 +50,7 @@ uses uCEFInterfaces; type - TCefBaseOwn = class(TInterfacedObject, ICefBase) + TCefBaseRefCountedOwn = class(TInterfacedObject, ICefBaseRefCounted) protected FData: Pointer; @@ -60,7 +60,7 @@ type function Wrap: Pointer; end; - TCefBaseRef = class(TInterfacedObject, ICefBase) + TCefBaseRefCountedRef = class(TInterfacedObject, ICefBaseRefCounted) protected FData: Pointer; @@ -68,107 +68,115 @@ type constructor Create(data: Pointer); virtual; destructor Destroy; override; function Wrap: Pointer; - class function UnWrap(data: Pointer): ICefBase; + class function UnWrap(data: Pointer): ICefBaseRefCounted; end; + + implementation uses uCEFTypes, uCEFMiscFunctions; -procedure cef_base_add_ref(self: PCefBase); stdcall; +procedure cef_base_add_ref(self: PCefBaseRefCounted); stdcall; begin - TCefBaseOwn(CefGetObject(self))._AddRef; + TCefBaseRefCountedOwn(CefGetObject(self))._AddRef; end; -function cef_base_release(self: PCefBase): Integer; stdcall; +function cef_base_release(self: PCefBaseRefCounted): Integer; stdcall; begin - Result := TCefBaseOwn(CefGetObject(self))._Release; + Result := TCefBaseRefCountedOwn(CefGetObject(self))._Release; end; -function cef_base_has_one_ref(self: PCefBase): Integer; stdcall; +function cef_base_has_one_ref(self: PCefBaseRefCounted): Integer; stdcall; begin - Result := Ord(TCefBaseOwn(CefGetObject(self)).FRefCount = 1); + Result := Ord(TCefBaseRefCountedOwn(CefGetObject(self)).FRefCount = 1); end; -procedure cef_base_add_ref_owned(self: PCefBase); stdcall; +procedure cef_base_add_ref_owned(self: PCefBaseRefCounted); stdcall; begin // end; -function cef_base_release_owned(self: PCefBase): Integer; stdcall; +function cef_base_release_owned(self: PCefBaseRefCounted): Integer; stdcall; begin Result := 1; end; -function cef_base_has_one_ref_owned(self: PCefBase): Integer; stdcall; +function cef_base_has_one_ref_owned(self: PCefBaseRefCounted): Integer; stdcall; begin Result := 1; end; -constructor TCefBaseOwn.CreateData(size: Cardinal; owned: Boolean); +constructor TCefBaseRefCountedOwn.CreateData(size: Cardinal; owned: Boolean); begin GetMem(FData, size + SizeOf(Pointer)); PPointer(FData)^ := Self; Inc(PByte(FData), SizeOf(Pointer)); FillChar(FData^, size, 0); - PCefBase(FData)^.size := size; + PCefBaseRefCounted(FData)^.size := size; if owned then begin - PCefBase(FData)^.add_ref := cef_base_add_ref_owned; - PCefBase(FData)^.release := cef_base_release_owned; - PCefBase(FData)^.has_one_ref := cef_base_has_one_ref_owned; + PCefBaseRefCounted(FData)^.add_ref := cef_base_add_ref_owned; + PCefBaseRefCounted(FData)^.release := cef_base_release_owned; + PCefBaseRefCounted(FData)^.has_one_ref := cef_base_has_one_ref_owned; end else begin - PCefBase(FData)^.add_ref := cef_base_add_ref; - PCefBase(FData)^.release := cef_base_release; - PCefBase(FData)^.has_one_ref := cef_base_has_one_ref; + PCefBaseRefCounted(FData)^.add_ref := cef_base_add_ref; + PCefBaseRefCounted(FData)^.release := cef_base_release; + PCefBaseRefCounted(FData)^.has_one_ref := cef_base_has_one_ref; end; end; -destructor TCefBaseOwn.Destroy; +destructor TCefBaseRefCountedOwn.Destroy; begin Dec(PByte(FData), SizeOf(Pointer)); FreeMem(FData); - inherited; + FData := nil; + + inherited Destroy; end; -function TCefBaseOwn.Wrap: Pointer; +function TCefBaseRefCountedOwn.Wrap: Pointer; begin Result := FData; - if Assigned(PCefBase(FData)^.add_ref) then - PCefBase(FData)^.add_ref(PCefBase(FData)); + + if (FData <> nil) and Assigned(PCefBaseRefCounted(FData)^.add_ref) then + PCefBaseRefCounted(FData)^.add_ref(PCefBaseRefCounted(FData)); end; -// TCefBaseRef +// TCefBaseRefCountedRef -constructor TCefBaseRef.Create(data: Pointer); +constructor TCefBaseRefCountedRef.Create(data: Pointer); begin Assert(data <> nil); FData := data; end; -destructor TCefBaseRef.Destroy; +destructor TCefBaseRefCountedRef.Destroy; begin - if (FData <> nil) and Assigned(PCefBase(FData)^.release) then PCefBase(FData)^.release(PCefBase(FData)); + if (FData <> nil) and Assigned(PCefBaseRefCounted(FData)^.release) then + PCefBaseRefCounted(FData)^.release(PCefBaseRefCounted(FData)); inherited Destroy; end; -class function TCefBaseRef.UnWrap(data: Pointer): ICefBase; +class function TCefBaseRefCountedRef.UnWrap(data: Pointer): ICefBaseRefCounted; begin - if data <> nil then - Result := Create(data) as ICefBase else + if (data <> nil) then + Result := Create(data) as ICefBaseRefCounted + else Result := nil; end; -function TCefBaseRef.Wrap: Pointer; +function TCefBaseRefCountedRef.Wrap: Pointer; begin Result := FData; - if Assigned(PCefBase(FData)^.add_ref) then - PCefBase(FData)^.add_ref(PCefBase(FData)); + + if (FData <> nil) and Assigned(PCefBaseRefCounted(FData)^.add_ref) then + PCefBaseRefCounted(FData)^.add_ref(PCefBaseRefCounted(FData)); end; end. diff --git a/source/uCEFBaseScopedWrapper.pas b/source/uCEFBaseScopedWrapper.pas new file mode 100644 index 00000000..4bb7e05a --- /dev/null +++ b/source/uCEFBaseScopedWrapper.pas @@ -0,0 +1,73 @@ +// ************************************************************************ +// ***************************** 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 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 + * 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 uCEFBaseScopedWrapper; + +{$IFNDEF CPUX64} + {$ALIGN ON} + {$MINENUMSIZE 4} +{$ENDIF} + +{$I cef.inc} + +interface + +type + TCEFBaseScopedWrapperRef = class + protected + FData: Pointer; + + public + constructor Create(data: Pointer); virtual; + function Wrap: Pointer; + end; + +implementation + +constructor TCEFBaseScopedWrapperRef.Create(data: Pointer); +begin + inherited Create; + + FData := data; +end; + +function TCEFBaseScopedWrapperRef.Wrap: Pointer; +begin + Result := FData; +end; + +end. diff --git a/source/uCEFBeforeDownloadCallback.pas b/source/uCEFBeforeDownloadCallback.pas index 2efb884a..99dfa7cc 100644 --- a/source/uCEFBeforeDownloadCallback.pas +++ b/source/uCEFBeforeDownloadCallback.pas @@ -47,10 +47,10 @@ unit uCEFBeforeDownloadCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefBeforeDownloadCallbackRef = class(TCefBaseRef, ICefBeforeDownloadCallback) + TCefBeforeDownloadCallbackRef = class(TCefBaseRefCountedRef, ICefBeforeDownloadCallback) protected procedure Cont(const downloadPath: ustring; showDialog: Boolean); diff --git a/source/uCEFBinaryValue.pas b/source/uCEFBinaryValue.pas index fc4c8dab..135cd00f 100644 --- a/source/uCEFBinaryValue.pas +++ b/source/uCEFBinaryValue.pas @@ -47,10 +47,10 @@ unit uCEFBinaryValue; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefBinaryValueRef = class(TCefBaseRef, ICefBinaryValue) + TCefBinaryValueRef = class(TCefBaseRefCountedRef, ICefBinaryValue) protected function IsValid: Boolean; function IsOwned: Boolean; diff --git a/source/uCEFBrowser.pas b/source/uCEFBrowser.pas index c91a793a..a5e1324d 100644 --- a/source/uCEFBrowser.pas +++ b/source/uCEFBrowser.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefBrowserRef = class(TCefBaseRef, ICefBrowser) + TCefBrowserRef = class(TCefBaseRefCountedRef, ICefBrowser) protected function GetHost: ICefBrowserHost; function CanGoBack: Boolean; @@ -83,7 +83,7 @@ type class function UnWrap(data: Pointer): ICefBrowser; end; - TCefBrowserHostRef = class(TCefBaseRef, ICefBrowserHost) + TCefBrowserHostRef = class(TCefBaseRefCountedRef, ICefBrowserHost) protected function GetBrowser: ICefBrowser; procedure CloseBrowser(forceClose: Boolean); diff --git a/source/uCEFBrowserProcessHandler.pas b/source/uCEFBrowserProcessHandler.pas index 6ea1df94..625f4c68 100644 --- a/source/uCEFBrowserProcessHandler.pas +++ b/source/uCEFBrowserProcessHandler.pas @@ -47,10 +47,10 @@ unit uCEFBrowserProcessHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefBrowserProcessHandlerOwn = class(TCefBaseOwn, ICefBrowserProcessHandler) + TCefBrowserProcessHandlerOwn = class(TCefBaseRefCountedOwn, ICefBrowserProcessHandler) protected procedure OnContextInitialized; virtual; procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); virtual; diff --git a/source/uCEFCallback.pas b/source/uCEFCallback.pas index 7dca761e..c390e14c 100644 --- a/source/uCEFCallback.pas +++ b/source/uCEFCallback.pas @@ -47,10 +47,10 @@ unit uCEFCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefCallbackRef = class(TCefBaseRef, ICefCallback) + TCefCallbackRef = class(TCefBaseRefCountedRef, ICefCallback) protected procedure Cont; procedure Cancel; diff --git a/source/uCEFChromium.pas b/source/uCEFChromium.pas index be2919f6..a4d8ada3 100644 --- a/source/uCEFChromium.pas +++ b/source/uCEFChromium.pas @@ -1997,18 +1997,24 @@ var TempDict : ICefDictionaryValue; TempPrefs : TStringList; begin + TempPrefs := nil; + try - if Initialized then - begin - TempPrefs := TStringList.Create; - TempDict := FBrowser.Host.RequestContext.GetAllPreferences(True); - HandleDictionary(TempDict, TempPrefs, ''); - TempPrefs.SaveToFile(FPrefsFileName); - SendCompMessage(CEF_PREFERENCES_SAVED); - end; - except - on e : exception do - OutputDebugMessage('TChromium.Internal_SavePreferences error: ' + e.Message); + try + if Initialized then + begin + TempPrefs := TStringList.Create; + TempDict := FBrowser.Host.RequestContext.GetAllPreferences(True); + HandleDictionary(TempDict, TempPrefs, ''); + TempPrefs.SaveToFile(FPrefsFileName); + SendCompMessage(CEF_PREFERENCES_SAVED); + end; + except + on e : exception do + OutputDebugMessage('TChromium.Internal_SavePreferences error: ' + e.Message); + end; + finally + if (TempPrefs <> nil) then FreeAndNil(TempPrefs); end; end; diff --git a/source/uCEFClient.pas b/source/uCEFClient.pas index 2f0d00f5..e7916b1d 100644 --- a/source/uCEFClient.pas +++ b/source/uCEFClient.pas @@ -52,10 +52,10 @@ uses {$ELSE} Windows, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefClientOwn = class(TCefBaseOwn, ICefClient) + TCefClientOwn = class(TCefBaseRefCountedOwn, ICefClient) protected function GetContextMenuHandler: ICefContextMenuHandler; virtual; function GetDialogHandler: ICefDialogHandler; virtual; diff --git a/source/uCEFCommandLine.pas b/source/uCEFCommandLine.pas index 535fccfc..0630fc9a 100644 --- a/source/uCEFCommandLine.pas +++ b/source/uCEFCommandLine.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFTypes, uCEFInterfaces; + uCEFBaseRefCounted, uCEFTypes, uCEFInterfaces; type - TCefCommandLineRef = class(TCefBaseRef, ICefCommandLine) + TCefCommandLineRef = class(TCefBaseRefCountedRef, ICefCommandLine) protected function IsValid: Boolean; function IsReadOnly: Boolean; diff --git a/source/uCEFCompletionCallback.pas b/source/uCEFCompletionCallback.pas index 598c7288..70928620 100644 --- a/source/uCEFCompletionCallback.pas +++ b/source/uCEFCompletionCallback.pas @@ -47,10 +47,10 @@ unit uCEFCompletionCallback; interface uses - uCEFBase, uCEFInterfaces; + uCEFBaseRefCounted, uCEFInterfaces; type - TCefCompletionCallbackOwn = class(TCefBaseOwn, ICefCompletionCallback) + TCefCompletionCallbackOwn = class(TCefBaseRefCountedOwn, ICefCompletionCallback) protected procedure OnComplete; virtual; diff --git a/source/uCEFContextMenuHandler.pas b/source/uCEFContextMenuHandler.pas index 94259e00..2943e02a 100644 --- a/source/uCEFContextMenuHandler.pas +++ b/source/uCEFContextMenuHandler.pas @@ -47,10 +47,10 @@ unit uCEFContextMenuHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefContextMenuHandlerOwn = class(TCefBaseOwn, ICefContextMenuHandler) + TCefContextMenuHandlerOwn = class(TCefBaseRefCountedOwn, ICefContextMenuHandler) protected procedure OnBeforeContextMenu(const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel); virtual; function RunContextMenu(const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel; const callback: ICefRunContextMenuCallback): Boolean; virtual; diff --git a/source/uCEFContextMenuParams.pas b/source/uCEFContextMenuParams.pas index 9d7859ff..7440989a 100644 --- a/source/uCEFContextMenuParams.pas +++ b/source/uCEFContextMenuParams.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefContextMenuParamsRef = class(TCefBaseRef, ICefContextMenuParams) + TCefContextMenuParamsRef = class(TCefBaseRefCountedRef, ICefContextMenuParams) protected function GetXCoord: Integer; function GetYCoord: Integer; diff --git a/source/uCEFCookieManager.pas b/source/uCEFCookieManager.pas index 47237a69..6f55c02e 100644 --- a/source/uCEFCookieManager.pas +++ b/source/uCEFCookieManager.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefCookieManagerRef = class(TCefBaseRef, ICefCookieManager) + TCefCookieManagerRef = class(TCefBaseRefCountedRef, ICefCookieManager) protected procedure SetSupportedSchemes(schemes: TStrings; const callback: ICefCompletionCallback); procedure SetSupportedSchemesProc(schemes: TStrings; const callback: TCefCompletionCallbackProc); diff --git a/source/uCEFCookieVisitor.pas b/source/uCEFCookieVisitor.pas index 9d66cd52..9650337f 100644 --- a/source/uCEFCookieVisitor.pas +++ b/source/uCEFCookieVisitor.pas @@ -47,10 +47,10 @@ unit uCEFCookieVisitor; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefCookieVisitorOwn = class(TCefBaseOwn, ICefCookieVisitor) + TCefCookieVisitorOwn = class(TCefBaseRefCountedOwn, ICefCookieVisitor) protected function visit(const name, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total: Integer; out deleteCookie: Boolean): Boolean; virtual; diff --git a/source/uCEFCustomStreamReader.pas b/source/uCEFCustomStreamReader.pas index 9a40401f..37693663 100644 --- a/source/uCEFCustomStreamReader.pas +++ b/source/uCEFCustomStreamReader.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, SysUtils, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefCustomStreamReader = class(TCefBaseOwn, ICefCustomStreamReader) + TCefCustomStreamReader = class(TCefBaseRefCountedOwn, ICefCustomStreamReader) protected FStream: TStream; FOwned: Boolean; diff --git a/source/uCEFDeleteCookiesCallback.pas b/source/uCEFDeleteCookiesCallback.pas index e808f399..ac990fcc 100644 --- a/source/uCEFDeleteCookiesCallback.pas +++ b/source/uCEFDeleteCookiesCallback.pas @@ -47,10 +47,10 @@ unit uCEFDeleteCookiesCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDeleteCookiesCallbackOwn = class(TCefBaseOwn, ICefDeleteCookiesCallback) + TCefDeleteCookiesCallbackOwn = class(TCefBaseRefCountedOwn, ICefDeleteCookiesCallback) protected procedure OnComplete(numDeleted: Integer); virtual; abstract; diff --git a/source/uCEFDialogHandler.pas b/source/uCEFDialogHandler.pas index 2d8e8080..480d5791 100644 --- a/source/uCEFDialogHandler.pas +++ b/source/uCEFDialogHandler.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDialogHandlerOwn = class(TCefBaseOwn, ICefDialogHandler) + TCefDialogHandlerOwn = class(TCefBaseRefCountedOwn, ICefDialogHandler) protected function OnFileDialog(const browser: ICefBrowser; mode: TCefFileDialogMode; const title, defaultFilePath: ustring; acceptFilters: TStrings; selectedAcceptFilter: Integer; const callback: ICefFileDialogCallback): Boolean; virtual; diff --git a/source/uCEFDictionaryValue.pas b/source/uCEFDictionaryValue.pas index b00ec729..573e7bf5 100644 --- a/source/uCEFDictionaryValue.pas +++ b/source/uCEFDictionaryValue.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDictionaryValueRef = class(TCefBaseRef, ICefDictionaryValue) + TCefDictionaryValueRef = class(TCefBaseRefCountedRef, ICefDictionaryValue) protected function IsValid: Boolean; function isOwned: Boolean; diff --git a/source/uCEFDisplayHandler.pas b/source/uCEFDisplayHandler.pas index 4f1cfabd..75122fa1 100644 --- a/source/uCEFDisplayHandler.pas +++ b/source/uCEFDisplayHandler.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDisplayHandlerOwn = class(TCefBaseOwn, ICefDisplayHandler) + TCefDisplayHandlerOwn = class(TCefBaseRefCountedOwn, ICefDisplayHandler) protected procedure OnAddressChange(const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); virtual; procedure OnTitleChange(const browser: ICefBrowser; const title: ustring); virtual; diff --git a/source/uCEFDomDocument.pas b/source/uCEFDomDocument.pas index 43632a38..be303197 100644 --- a/source/uCEFDomDocument.pas +++ b/source/uCEFDomDocument.pas @@ -47,10 +47,10 @@ unit uCEFDomDocument; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDomDocumentRef = class(TCefBaseRef, ICefDomDocument) + TCefDomDocumentRef = class(TCefBaseRefCountedRef, ICefDomDocument) protected function GetType: TCefDomDocumentType; function GetDocument: ICefDomNode; diff --git a/source/uCEFDomNode.pas b/source/uCEFDomNode.pas index 75244625..9cc74cfc 100644 --- a/source/uCEFDomNode.pas +++ b/source/uCEFDomNode.pas @@ -47,10 +47,10 @@ unit uCEFDomNode; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDomNodeRef = class(TCefBaseRef, ICefDomNode) + TCefDomNodeRef = class(TCefBaseRefCountedRef, ICefDomNode) protected function GetType: TCefDomNodeType; function IsText: Boolean; diff --git a/source/uCEFDomVisitor.pas b/source/uCEFDomVisitor.pas index 3bfa0346..b8491804 100644 --- a/source/uCEFDomVisitor.pas +++ b/source/uCEFDomVisitor.pas @@ -47,10 +47,10 @@ unit uCEFDomVisitor; interface uses - uCEFBase, uCEFInterfaces; + uCEFBaseRefCounted, uCEFInterfaces; type - TCefDomVisitorOwn = class(TCefBaseOwn, ICefDomVisitor) + TCefDomVisitorOwn = class(TCefBaseRefCountedOwn, ICefDomVisitor) protected procedure visit(const document: ICefDomDocument); virtual; diff --git a/source/uCEFDownLoadItem.pas b/source/uCEFDownLoadItem.pas index e953e904..f0bd268b 100644 --- a/source/uCEFDownLoadItem.pas +++ b/source/uCEFDownLoadItem.pas @@ -47,10 +47,10 @@ unit uCEFDownLoadItem; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDownLoadItemRef = class(TCefBaseRef, ICefDownLoadItem) + TCefDownLoadItemRef = class(TCefBaseRefCountedRef, ICefDownLoadItem) protected function IsValid: Boolean; function IsInProgress: Boolean; diff --git a/source/uCEFDownloadHandler.pas b/source/uCEFDownloadHandler.pas index be7a035a..95633382 100644 --- a/source/uCEFDownloadHandler.pas +++ b/source/uCEFDownloadHandler.pas @@ -47,10 +47,10 @@ unit uCEFDownloadHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDownloadHandlerOwn = class(TCefBaseOwn, ICefDownloadHandler) + TCefDownloadHandlerOwn = class(TCefBaseRefCountedOwn, ICefDownloadHandler) protected procedure OnBeforeDownload(const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const suggestedName: ustring; const callback: ICefBeforeDownloadCallback); virtual; procedure OnDownloadUpdated(const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const callback: ICefDownloadItemCallback); virtual; diff --git a/source/uCEFDownloadImageCallBack.pas b/source/uCEFDownloadImageCallBack.pas index 681fbbfe..b022654e 100644 --- a/source/uCEFDownloadImageCallBack.pas +++ b/source/uCEFDownloadImageCallBack.pas @@ -47,10 +47,10 @@ unit uCEFDownloadImageCallBack; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDownloadImageCallbackOwn = class(TCefBaseOwn, ICefDownloadImageCallback) + TCefDownloadImageCallbackOwn = class(TCefBaseRefCountedOwn, ICefDownloadImageCallback) protected procedure OnDownloadImageFinished(const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage); virtual; abstract; diff --git a/source/uCEFDownloadItemCallback.pas b/source/uCEFDownloadItemCallback.pas index 39356779..f7b5189b 100644 --- a/source/uCEFDownloadItemCallback.pas +++ b/source/uCEFDownloadItemCallback.pas @@ -47,10 +47,10 @@ unit uCEFDownloadItemCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDownloadItemCallbackRef = class(TCefBaseRef, ICefDownloadItemCallback) + TCefDownloadItemCallbackRef = class(TCefBaseRefCountedRef, ICefDownloadItemCallback) protected procedure Cancel; procedure Pause; diff --git a/source/uCEFDragData.pas b/source/uCEFDragData.pas index db0c6c29..1c12675d 100644 --- a/source/uCEFDragData.pas +++ b/source/uCEFDragData.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDragDataRef = class(TCefBaseRef, ICefDragData) + TCefDragDataRef = class(TCefBaseRefCountedRef, ICefDragData) protected function Clone: ICefDragData; function IsReadOnly: Boolean; diff --git a/source/uCEFDragHandler.pas b/source/uCEFDragHandler.pas index dadef26a..aaaaa8ad 100644 --- a/source/uCEFDragHandler.pas +++ b/source/uCEFDragHandler.pas @@ -47,10 +47,10 @@ unit uCEFDragHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefDragHandlerOwn = class(TCefBaseOwn, ICefDragHandler) + TCefDragHandlerOwn = class(TCefBaseRefCountedOwn, ICefDragHandler) protected function OnDragEnter(const browser: ICefBrowser; const dragData: ICefDragData; mask: TCefDragOperations): Boolean; virtual; procedure OnDraggableRegionsChanged(const browser: ICefBrowser; regionsCount: NativeUInt; regions: PCefDraggableRegionArray); virtual; diff --git a/source/uCEFEndTracingCallback.pas b/source/uCEFEndTracingCallback.pas index 25ec7519..b6da23d6 100644 --- a/source/uCEFEndTracingCallback.pas +++ b/source/uCEFEndTracingCallback.pas @@ -47,10 +47,10 @@ unit uCEFEndTracingCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefEndTracingCallbackOwn = class(TCefBaseOwn, ICefEndTracingCallback) + TCefEndTracingCallbackOwn = class(TCefBaseRefCountedOwn, ICefEndTracingCallback) protected procedure OnEndTracingComplete(const tracingFile: ustring); virtual; public diff --git a/source/uCEFFileDialogCallback.pas b/source/uCEFFileDialogCallback.pas index 75232734..8efd2e79 100644 --- a/source/uCEFFileDialogCallback.pas +++ b/source/uCEFFileDialogCallback.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefFileDialogCallbackRef = class(TCefBaseRef, ICefFileDialogCallback) + TCefFileDialogCallbackRef = class(TCefBaseRefCountedRef, ICefFileDialogCallback) protected procedure Cont(selectedAcceptFilter: Integer; filePaths: TStrings); procedure Cancel; diff --git a/source/uCEFFindHandler.pas b/source/uCEFFindHandler.pas index 8b031173..20a5cd41 100644 --- a/source/uCEFFindHandler.pas +++ b/source/uCEFFindHandler.pas @@ -47,10 +47,10 @@ unit uCEFFindHandler; interface uses - uCEFBase, uCEFTypes, uCEFInterfaces; + uCEFBaseRefCounted, uCEFTypes, uCEFInterfaces; type - TCefFindHandlerOwn = class(TCefBaseOwn, ICefFindHandler) + TCefFindHandlerOwn = class(TCefBaseRefCountedOwn, ICefFindHandler) protected procedure OnFindResult(const browser: ICefBrowser; identifier, count: Integer; const selectionRect: PCefRect; activeMatchOrdinal: Integer; finalUpdate: Boolean); virtual; abstract; diff --git a/source/uCEFFocusHandler.pas b/source/uCEFFocusHandler.pas index be76a410..1dd66fd7 100644 --- a/source/uCEFFocusHandler.pas +++ b/source/uCEFFocusHandler.pas @@ -47,10 +47,10 @@ unit uCEFFocusHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefFocusHandlerOwn = class(TCefBaseOwn, ICefFocusHandler) + TCefFocusHandlerOwn = class(TCefBaseRefCountedOwn, ICefFocusHandler) protected procedure OnTakeFocus(const browser: ICefBrowser; next: Boolean); virtual; function OnSetFocus(const browser: ICefBrowser; source: TCefFocusSource): Boolean; virtual; diff --git a/source/uCEFFrame.pas b/source/uCEFFrame.pas index 7d590eba..2dcd3447 100644 --- a/source/uCEFFrame.pas +++ b/source/uCEFFrame.pas @@ -47,10 +47,10 @@ unit uCEFFrame; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefFrameRef = class(TCefBaseRef, ICefFrame) + TCefFrameRef = class(TCefBaseRefCountedRef, ICefFrame) public function IsValid: Boolean; procedure Undo; diff --git a/source/uCEFGeolocationCallback.pas b/source/uCEFGeolocationCallback.pas index d08ebd8a..7c0ad2af 100644 --- a/source/uCEFGeolocationCallback.pas +++ b/source/uCEFGeolocationCallback.pas @@ -47,10 +47,10 @@ unit uCEFGeolocationCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefGeolocationCallbackRef = class(TCefBaseRef, ICefGeolocationCallback) + TCefGeolocationCallbackRef = class(TCefBaseRefCountedRef, ICefGeolocationCallback) protected procedure Cont(allow: Boolean); public diff --git a/source/uCEFGeolocationHandler.pas b/source/uCEFGeolocationHandler.pas index 024d9214..aed46383 100644 --- a/source/uCEFGeolocationHandler.pas +++ b/source/uCEFGeolocationHandler.pas @@ -47,10 +47,10 @@ unit uCEFGeolocationHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefGeolocationHandlerOwn = class(TCefBaseOwn, ICefGeolocationHandler) + TCefGeolocationHandlerOwn = class(TCefBaseRefCountedOwn, ICefGeolocationHandler) protected function OnRequestGeolocationPermission(const browser: ICefBrowser; const requestingUrl: ustring; requestId: Integer; const callback: ICefGeolocationCallback): Boolean; virtual; procedure OnCancelGeolocationPermission(const browser: ICefBrowser; requestId: Integer); virtual; diff --git a/source/uCEFGetGeolocationCallback.pas b/source/uCEFGetGeolocationCallback.pas index 03f035bb..03caab01 100644 --- a/source/uCEFGetGeolocationCallback.pas +++ b/source/uCEFGetGeolocationCallback.pas @@ -47,10 +47,10 @@ unit uCEFGetGeolocationCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefGetGeolocationCallbackOwn = class(TCefBaseOwn, ICefGetGeolocationCallback) + TCefGetGeolocationCallbackOwn = class(TCefBaseRefCountedOwn, ICefGetGeolocationCallback) protected procedure OnLocationUpdate(const position: PCefGeoposition); virtual; diff --git a/source/uCEFImage.pas b/source/uCEFImage.pas index 4dd216dc..c1110bf5 100644 --- a/source/uCEFImage.pas +++ b/source/uCEFImage.pas @@ -52,10 +52,10 @@ uses {$ELSE} Windows, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefImageRef = class(TCefBaseRef, ICefImage) + TCefImageRef = class(TCefBaseRefCountedRef, ICefImage) protected function IsEmpty: Boolean; function IsSame(const that: ICefImage): Boolean; diff --git a/source/uCEFInterfaces.pas b/source/uCEFInterfaces.pas index 47efa0da..371bca87 100644 --- a/source/uCEFInterfaces.pas +++ b/source/uCEFInterfaces.pas @@ -52,7 +52,7 @@ uses {$ELSE} Windows, Classes, {$ENDIF} - uCEFTypes; + uCEFTypes, uCEFSchemeRegistrar; type ICefBrowser = interface; @@ -85,7 +85,6 @@ type ICefX509CertPrincipal = interface; ICefX509Certificate = interface; ICefSelectClientCertificateCallback = interface; - ICefSchemeRegistrar = interface; ICefCommandLine = interface; ICefRequestHandler = interface; ICefResourceBundleHandler = interface; @@ -99,7 +98,7 @@ type TCefDomVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const document: ICefDomDocument); TCefStringVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const str: ustring); - TOnRegisterCustomSchemes = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const registrar: ICefSchemeRegistrar) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; + TOnRegisterCustomSchemes = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const registrar: TCefSchemeRegistrarRef) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; TOnGetResourceBundleHandler = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(var aCefResourceBundleHandler : ICefResourceBundleHandler) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; TOnGetBrowserProcessHandler = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(var aCefBrowserProcessHandler : ICefBrowserProcessHandler) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; TOnGetRenderProcessHandler = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(var aCefRenderProcessHandler : ICefRenderProcessHandler) {$IFNDEF DELPHI12_UP}of object{$ENDIF}; @@ -111,12 +110,12 @@ type - ICefBase = interface + ICefBaseRefCounted = interface ['{1F9A7B44-DCDC-4477-9180-3ADD44BDEB7B}'] function Wrap: Pointer; end; - ICefRunFileDialogCallback = interface(ICefBase) + ICefRunFileDialogCallback = interface(ICefBaseRefCounted) ['{59FCECC6-E897-45BA-873B-F09586C4BE47}'] procedure OnFileDialogDismissed(selectedAcceptFilter: Integer; filePaths: TStrings); end; @@ -124,7 +123,7 @@ type TCefRunFileDialogCallbackProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(selectedAcceptFilter: Integer; filePaths: TStrings); - ICefNavigationEntryVisitor = interface(ICefBase) + ICefNavigationEntryVisitor = interface(ICefBaseRefCounted) ['{CC4D6BC9-0168-4C2C-98BA-45E9AA9CD619}'] function Visit(const entry: ICefNavigationEntry; current: Boolean; index, total: Integer): Boolean; @@ -133,7 +132,7 @@ type TCefNavigationEntryVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} function(const entry: ICefNavigationEntry; current: Boolean; index, total: Integer): Boolean; - ICefPdfPrintCallback = interface(ICefBase) + ICefPdfPrintCallback = interface(ICefBaseRefCounted) ['{F1CC58E9-2C30-4932-91AE-467C8D8EFB8E}'] procedure OnPdfPrintFinished(const path: ustring; ok: Boolean); end; @@ -141,13 +140,13 @@ type TOnDownloadImageFinishedProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage); - ICefDownloadImageCallback = interface(ICefBase) + ICefDownloadImageCallback = interface(ICefBaseRefCounted) ['{0C6E9032-27DF-4584-95C6-DC3C7CB63727}'] procedure OnDownloadImageFinished(const imageUrl: ustring; httpStatusCode: Integer; const image: ICefImage); end; - ICefBrowserHost = interface(ICefBase) + ICefBrowserHost = interface(ICefBaseRefCounted) ['{53AE02FF-EF5D-48C3-A43E-069DA9535424}'] function GetBrowser: ICefBrowser; procedure CloseBrowser(forceClose: Boolean); @@ -211,7 +210,7 @@ type property VisibleNavigationEntry : ICefNavigationEntry read GetVisibleNavigationEntry; end; - ICefProcessMessage = interface(ICefBase) + ICefProcessMessage = interface(ICefBaseRefCounted) ['{E0B1001A-8777-425A-869B-29D40B8B93B1}'] function IsValid: Boolean; function IsReadOnly: Boolean; @@ -222,7 +221,7 @@ type property ArgumentList: ICefListValue read GetArgumentList; end; - ICefBrowser = interface(ICefBase) + ICefBrowser = interface(ICefBaseRefCounted) ['{BA003C2E-CF15-458F-9D4A-FE3CEFCF3EEF}'] function GetHost: ICefBrowserHost; function CanGoBack: Boolean; @@ -253,7 +252,7 @@ type property Identifier: Integer read GetIdentifier; end; - ICefPostDataElement = interface(ICefBase) + ICefPostDataElement = interface(ICefBaseRefCounted) ['{3353D1B8-0300-4ADC-8D74-4FF31C77D13C}'] function IsReadOnly: Boolean; procedure SetToEmpty; @@ -265,7 +264,7 @@ type function GetBytes(size: NativeUInt; bytes: Pointer): NativeUInt; end; - ICefPostData = interface(ICefBase) + ICefPostData = interface(ICefBaseRefCounted) ['{1E677630-9339-4732-BB99-D6FE4DE4AEC0}'] function IsReadOnly: Boolean; function HasExcludedElements: Boolean; @@ -310,7 +309,7 @@ type property Enumerate[const Key: ustring; ValueIndex: Integer]: ustring read GetEnumerate; end; - ICefRequest = interface(ICefBase) + ICefRequest = interface(ICefBaseRefCounted) ['{FB4718D3-7D13-4979-9F4C-D7F6C0EC592A}'] function IsReadOnly: Boolean; function GetUrl: ustring; @@ -347,12 +346,12 @@ type property Identifier: UInt64 read GetIdentifier; end; - ICefStringVisitor = interface(ICefBase) + ICefStringVisitor = interface(ICefBaseRefCounted) ['{63ED4D6C-2FC8-4537-964B-B84C008F6158}'] procedure Visit(const str: ustring); end; - ICefFrame = interface(ICefBase) + ICefFrame = interface(ICefBaseRefCounted) ['{8FD3D3A6-EA3A-4A72-8501-0276BD5C3D1D}'] function IsValid: Boolean; procedure Undo; @@ -388,7 +387,7 @@ type end; - ICefCustomStreamReader = interface(ICefBase) + ICefCustomStreamReader = interface(ICefBaseRefCounted) ['{BBCFF23A-6FE7-4C28-B13E-6D2ACA5C83B7}'] function Read(ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; @@ -397,7 +396,7 @@ type function MayBlock: Boolean; end; - ICefStreamReader = interface(ICefBase) + ICefStreamReader = interface(ICefBaseRefCounted) ['{DD5361CB-E558-49C5-A4BD-D1CE84ADB277}'] function Read(ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; @@ -406,7 +405,7 @@ type function MayBlock: Boolean; end; - ICefWriteHandler = interface(ICefBase) + ICefWriteHandler = interface(ICefBaseRefCounted) ['{F2431888-4EAB-421E-9EC3-320BE695AF30}'] function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; @@ -415,7 +414,7 @@ type function MayBlock: Boolean; end; - ICefStreamWriter = interface(ICefBase) + ICefStreamWriter = interface(ICefBaseRefCounted) ['{4AA6C477-7D8A-4D5A-A704-67F900A827E7}'] function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; @@ -424,7 +423,7 @@ type function MayBlock: Boolean; end; - ICefResponse = interface(ICefBase) + ICefResponse = interface(ICefBaseRefCounted) ['{E9C896E4-59A8-4B96-AB5E-6EA3A498B7F1}'] function IsReadOnly: Boolean; function GetError: TCefErrorCode; @@ -444,7 +443,7 @@ type property Error: TCefErrorCode read GetError write SetError; end; - ICefDownloadItem = interface(ICefBase) + ICefDownloadItem = interface(ICefBaseRefCounted) ['{B34BD320-A82E-4185-8E84-B98E5EEC803F}'] function IsValid: Boolean; function IsInProgress: Boolean; @@ -479,19 +478,19 @@ type property MimeType: ustring read GetMimeType; end; - ICefBeforeDownloadCallback = interface(ICefBase) + ICefBeforeDownloadCallback = interface(ICefBaseRefCounted) ['{5A81AF75-CBA2-444D-AD8E-522160F36433}'] procedure Cont(const downloadPath: ustring; showDialog: Boolean); end; - ICefDownloadItemCallback = interface(ICefBase) + ICefDownloadItemCallback = interface(ICefBaseRefCounted) ['{498F103F-BE64-4D5F-86B7-B37EC69E1735}'] procedure Cancel; procedure Pause; procedure Resume; end; - ICefDownloadHandler = interface(ICefBase) + ICefDownloadHandler = interface(ICefBaseRefCounted) ['{3137F90A-5DC5-43C1-858D-A269F28EF4F1}'] procedure OnBeforeDownload(const browser: ICefBrowser; const downloadItem: ICefDownloadItem; const suggestedName: ustring; const callback: ICefBeforeDownloadCallback); @@ -499,7 +498,7 @@ type const callback: ICefDownloadItemCallback); end; - ICefV8Exception = interface(ICefBase) + ICefV8Exception = interface(ICefBaseRefCounted) ['{7E422CF0-05AC-4A60-A029-F45105DCE6A4}'] function GetMessage: ustring; function GetSourceLine: ustring; @@ -520,7 +519,7 @@ type property EndColumn: Integer read GetEndColumn; end; - ICefv8Context = interface(ICefBase) + ICefv8Context = interface(ICefBaseRefCounted) ['{2295A11A-8773-41F2-AD42-308C215062D9}'] function GetTaskRunner: ICefTaskRunner; function IsValid: Boolean; @@ -536,14 +535,14 @@ type property Global: ICefv8Value read GetGlobal; end; - ICefv8Handler = interface(ICefBase) + ICefv8Handler = interface(ICefBaseRefCounted) ['{F94CDC60-FDCB-422D-96D5-D2A775BD5D73}'] function Execute(const name: ustring; const obj: ICefv8Value; const arguments: TCefv8ValueArray; var retval: ICefv8Value; var exception: ustring): Boolean; end; - ICefV8Interceptor = interface(ICefBase) + ICefV8Interceptor = interface(ICefBaseRefCounted) ['{B3B8FD7C-A916-4B25-93A2-2892AC324F21}'] function GetByName(const name: ustring; const obj: ICefv8Value; out retval: ICefv8Value; const exception: ustring): boolean; function GetByIndex(index: integer; const obj: ICefv8Value; out retval: ICefv8Value; const exception: ustring): boolean; @@ -551,18 +550,18 @@ type function SetByIndex(index: integer; const obj: ICefv8Value; const value: ICefv8Value; const exception: ustring): boolean; end; - ICefV8Accessor = interface(ICefBase) + ICefV8Accessor = interface(ICefBaseRefCounted) ['{DCA6D4A2-726A-4E24-AA64-5E8C731D868A}'] function Get(const name: ustring; const obj: ICefv8Value; out value: ICefv8Value; const exception: ustring): Boolean; function Put(const name: ustring; const obj: ICefv8Value; const value: ICefv8Value; const exception: ustring): Boolean; end; - ICefTask = interface(ICefBase) + ICefTask = interface(ICefBaseRefCounted) ['{0D965470-4A86-47CE-BD39-A8770021AD7E}'] procedure Execute; end; - ICefTaskRunner = interface(ICefBase) + ICefTaskRunner = interface(ICefBaseRefCounted) ['{6A500FA3-77B7-4418-8EA8-6337EED1337B}'] function IsSame(const that: ICefTaskRunner): Boolean; function BelongsToCurrentThread: Boolean; @@ -571,7 +570,7 @@ type function PostDelayedTask(const task: ICefTask; delayMs: Int64): Boolean; end; - ICefThread = interface(ICefBase) + ICefThread = interface(ICefBaseRefCounted) ['{26B30EA5-F44A-4C40-97DF-67FD9E73A4FF}'] function GetTaskRunner : ICefTaskRunner; function GetPlatformThreadID : TCefPlatformThreadId; @@ -579,7 +578,7 @@ type function IsRunning : boolean; end; - ICefWaitableEvent = interface(ICefBase) + ICefWaitableEvent = interface(ICefBaseRefCounted) ['{965C90C9-3DAE-457F-AA64-E04FF508094A}'] procedure Reset; procedure Signal; @@ -588,7 +587,7 @@ type function TimedWait(max_ms: int64): boolean; end; - ICefv8Value = interface(ICefBase) + ICefv8Value = interface(ICefBaseRefCounted) ['{52319B8D-75A8-422C-BD4B-16FA08CC7F42}'] function IsValid: Boolean; function IsUndefined: Boolean; @@ -640,7 +639,7 @@ type const obj: ICefv8Value; const arguments: TCefv8ValueArray): ICefv8Value; end; - ICefV8StackFrame = interface(ICefBase) + ICefV8StackFrame = interface(ICefBaseRefCounted) ['{BA1FFBF4-E9F2-4842-A827-DC220F324286}'] function IsValid: Boolean; function GetScriptName: ustring; @@ -658,7 +657,7 @@ type property Column: Integer read GetColumn; end; - ICefV8StackTrace = interface(ICefBase) + ICefV8StackTrace = interface(ICefBaseRefCounted) ['{32111C84-B7F7-4E3A-92B9-7CA1D0ADB613}'] function IsValid: Boolean; function GetFrameCount: Integer; @@ -667,7 +666,7 @@ type property Frame[index: Integer]: ICefV8StackFrame read GetFrame; end; - ICefXmlReader = interface(ICefBase) + ICefXmlReader = interface(ICefBaseRefCounted) ['{0DE686C3-A8D7-45D2-82FD-92F7F4E62A90}'] function MoveToNextNode: Boolean; function Close: Boolean; @@ -700,7 +699,7 @@ type function MoveToCarryingElement: Boolean; end; - ICefZipReader = interface(ICefBase) + ICefZipReader = interface(ICefBaseRefCounted) ['{3B6C591F-9877-42B3-8892-AA7B27DA34A8}'] function MoveToFirstFile: Boolean; function MoveToNextFile: Boolean; @@ -716,7 +715,7 @@ type function Eof: Boolean; end; - ICefDomNode = interface(ICefBase) + ICefDomNode = interface(ICefBaseRefCounted) ['{96C03C9E-9C98-491A-8DAD-1947332232D6}'] function GetType: TCefDomNodeType; function IsText: Boolean; @@ -759,7 +758,7 @@ type property ElementBounds: TCefRect read GetElementBounds; end; - ICefDomDocument = interface(ICefBase) + ICefDomDocument = interface(ICefBaseRefCounted) ['{08E74052-45AF-4F69-A578-98A5C3959426}'] function GetType: TCefDomDocumentType; function GetDocument: ICefDomNode; @@ -788,25 +787,25 @@ type property BaseUrl: ustring read GetBaseUrl; end; - ICefDomVisitor = interface(ICefBase) + ICefDomVisitor = interface(ICefBaseRefCounted) ['{30398428-3196-4531-B968-2DDBED36F6B0}'] procedure visit(const document: ICefDomDocument); end; - ICefCookieVisitor = interface(ICefBase) + ICefCookieVisitor = interface(ICefBaseRefCounted) ['{8378CF1B-84AB-4FDB-9B86-34DDABCCC402}'] function visit(const name, value, domain, path: ustring; secure, httponly, hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total: Integer; out deleteCookie: Boolean): Boolean; end; - ICefResourceBundleHandler = interface(ICefBase) + ICefResourceBundleHandler = interface(ICefBaseRefCounted) ['{09C264FD-7E03-41E3-87B3-4234E82B5EA2}'] function GetLocalizedString(stringId: Integer; out stringVal: ustring): Boolean; function GetDataResource(resourceId: Integer; out data: Pointer; out dataSize: NativeUInt): Boolean; end; - ICefCommandLine = interface(ICefBase) + ICefCommandLine = interface(ICefBaseRefCounted) ['{6B43D21B-0F2C-4B94-B4E6-4AF0D7669D8E}'] function IsValid: Boolean; function IsReadOnly: Boolean; @@ -831,7 +830,7 @@ type property CommandLineString: ustring read GetCommandLineString; end; - ICefBrowserProcessHandler = interface(ICefBase) + ICefBrowserProcessHandler = interface(ICefBaseRefCounted) ['{27291B7A-C0AE-4EE0-9115-15C810E22F6C}'] procedure OnContextInitialized; procedure OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); @@ -839,13 +838,7 @@ type procedure OnScheduleMessagePumpWork(delayMs: Int64); end; - ICefSchemeRegistrar = interface(ICefBase) - ['{1832FF6E-100B-4E8B-B996-AD633168BEE7}'] - function AddCustomScheme(const schemeName: ustring; IsStandard, IsLocal, - IsDisplayIsolated: Boolean): Boolean; stdcall; - end; - - ICefRenderProcessHandler = interface(IcefBase) + ICefRenderProcessHandler = interface(ICefBaseRefCounted) ['{FADEE3BC-BF66-430A-BA5D-1EE3782ECC58}'] procedure OnRenderThreadCreated(const extraInfo: ICefListValue) ; procedure OnWebKitInitialized; @@ -864,14 +857,13 @@ type sourceProcess: TCefProcessId; const message: ICefProcessMessage): Boolean; end; - ICefApp = interface(ICefBase) + ICefApp = interface(ICefBaseRefCounted) ['{970CA670-9070-4642-B188-7D8A22DAEED4}'] - procedure OnBeforeCommandLineProcessing(const processType: ustring; - const commandLine: ICefCommandLine); - procedure OnRegisterCustomSchemes(const registrar: ICefSchemeRegistrar); - function GetResourceBundleHandler: ICefResourceBundleHandler; - function GetBrowserProcessHandler: ICefBrowserProcessHandler; - function GetRenderProcessHandler: ICefRenderProcessHandler; + procedure OnBeforeCommandLineProcessing(const processType: ustring; const commandLine: ICefCommandLine); + procedure OnRegisterCustomSchemes(const registrar: TCefSchemeRegistrarRef); + function GetResourceBundleHandler: ICefResourceBundleHandler; + function GetBrowserProcessHandler: ICefBrowserProcessHandler; + function GetRenderProcessHandler: ICefRenderProcessHandler; end; TCefCookieVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} function( @@ -879,22 +871,22 @@ type hasExpires: Boolean; const creation, lastAccess, expires: TDateTime; count, total: Integer; out deleteCookie: Boolean): Boolean; - ICefCompletionCallback = interface(ICefBase) + ICefCompletionCallback = interface(ICefBaseRefCounted) ['{A8ECCFBB-FEE0-446F-AB32-AD69A7478D57}'] procedure OnComplete; end; - ICefSetCookieCallback = interface(ICefBase) + ICefSetCookieCallback = interface(ICefBaseRefCounted) ['{16E14B6F-CB0A-4F9D-A008-239E0BC7B892}'] procedure OnComplete(success: Boolean); end; - ICefDeleteCookiesCallback = interface(ICefBase) + ICefDeleteCookiesCallback = interface(ICefBaseRefCounted) ['{758B79A1-B9E8-4F0D-94A0-DCE5AFADE33D}'] procedure OnComplete(numDeleted: Integer); end; - ICefCookieManager = Interface(ICefBase) + ICefCookieManager = Interface(ICefBaseRefCounted) ['{CC1749E6-9AD3-4283-8430-AF6CBF3E8785}'] procedure SetSupportedSchemes(schemes: TStrings; const callback: ICefCompletionCallback); procedure SetSupportedSchemesProc(schemes: TStrings; const callback: TCefCompletionCallbackProc); @@ -918,7 +910,7 @@ type function FlushStoreProc(const proc: TCefCompletionCallbackProc): Boolean; end; - ICefWebPluginInfo = interface(ICefBase) + ICefWebPluginInfo = interface(ICefBaseRefCounted) ['{AA879E58-F649-44B1-AF9C-655FF5B79A02}'] function GetName: ustring; function GetPath: ustring; @@ -931,13 +923,13 @@ type property Description: ustring read GetDescription; end; - ICefCallback = interface(ICefBase) + ICefCallback = interface(ICefBaseRefCounted) ['{1B8C449F-E2D6-4B78-9BBA-6F47E8BCDF37}'] procedure Cont; procedure Cancel; end; - ICefResourceHandler = interface(ICefBase) + ICefResourceHandler = interface(ICefBaseRefCounted) ['{BD3EA208-AAAD-488C-BFF2-76993022F2B5}'] function ProcessRequest(const request: ICefRequest; const callback: ICefCallback): Boolean; procedure GetResponseHeaders(const response: ICefResponse; @@ -949,24 +941,24 @@ type procedure Cancel; end; - ICefSchemeHandlerFactory = interface(ICefBase) + ICefSchemeHandlerFactory = interface(ICefBaseRefCounted) ['{4D9B7960-B73B-4EBD-9ABE-6C1C43C245EB}'] function New(const browser: ICefBrowser; const frame: ICefFrame; const schemeName: ustring; const request: ICefRequest): ICefResourceHandler; end; - ICefAuthCallback = interface(ICefBase) + ICefAuthCallback = interface(ICefBaseRefCounted) ['{500C2023-BF4D-4FF7-9C04-165E5C389131}'] procedure Cont(const username, password: ustring); procedure Cancel; end; - ICefJsDialogCallback = interface(ICefBase) + ICefJsDialogCallback = interface(ICefBaseRefCounted) ['{187B2156-9947-4108-87AB-32E559E1B026}'] procedure Cont(success: Boolean; const userInput: ustring); end; - ICefContextMenuParams = interface(ICefBase) + ICefContextMenuParams = interface(ICefBaseRefCounted) ['{E31BFA9E-D4E2-49B7-A05D-20018C8794EB}'] function GetXCoord: Integer; function GetYCoord: Integer; @@ -1006,8 +998,9 @@ type property EditStateFlags: TCefContextMenuEditStateFlags read GetEditStateFlags; end; - ICefMenuModel = interface(ICefBase) + ICefMenuModel = interface(ICefBaseRefCounted) ['{40AF19D3-8B4E-44B8-8F89-DEB5907FC495}'] + function IsSubMenu: Boolean; function Clear: Boolean; function GetCount: Integer; function AddSeparator: Boolean; @@ -1057,9 +1050,15 @@ type function RemoveAcceleratorAt(index: Integer): Boolean; function GetAccelerator(commandId: Integer; out keyCode: Integer; out shiftPressed, ctrlPressed, altPressed: Boolean): Boolean; function GetAcceleratorAt(index: Integer; out keyCode: Integer; out shiftPressed, ctrlPressed, altPressed: Boolean): Boolean; + function SetColor(commandId: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; + function SetColorAt(index: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; + function GetColor(commandId: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; + function GetColorAt(index: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; + function SetFontList(commandId: Integer; const fontList: ustring): Boolean; + function SetFontListAt(index: Integer; const fontList: ustring): Boolean; end; - ICefValue = interface(ICefBase) + ICefValue = interface(ICefBaseRefCounted) ['{66F9F439-B12B-4EC3-A945-91AE4EF4D4BA}'] function IsValid: Boolean; function IsOwned: Boolean; @@ -1088,7 +1087,7 @@ type function SetList(const value: ICefListValue): Boolean; end; - ICefBinaryValue = interface(ICefBase) + ICefBinaryValue = interface(ICefBaseRefCounted) ['{974AA40A-9C5C-4726-81F0-9F0D46D7C5B3}'] function IsValid: Boolean; function IsOwned: Boolean; @@ -1099,7 +1098,7 @@ type function GetData(buffer: Pointer; bufferSize, dataOffset: NativeUInt): NativeUInt; end; - ICefDictionaryValue = interface(ICefBase) + ICefDictionaryValue = interface(ICefBaseRefCounted) ['{B9638559-54DC-498C-8185-233EEF12BC69}'] function IsValid: Boolean; function isOwned: Boolean; @@ -1133,7 +1132,7 @@ type end; - ICefListValue = interface(ICefBase) + ICefListValue = interface(ICefBaseRefCounted) ['{09174B9D-0CC6-4360-BBB0-3CC0117F70F6}'] function IsValid: Boolean; function IsOwned: Boolean; @@ -1166,7 +1165,7 @@ type end; - ICefLifeSpanHandler = interface(ICefBase) + ICefLifeSpanHandler = interface(ICefBaseRefCounted) ['{0A3EB782-A319-4C35-9B46-09B2834D7169}'] function OnBeforePopup(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; @@ -1179,7 +1178,7 @@ type function DoClose(const browser: ICefBrowser): Boolean; end; - ICefLoadHandler = interface(ICefBase) + ICefLoadHandler = interface(ICefBaseRefCounted) ['{2C63FB82-345D-4A5B-9858-5AE7A85C9F49}'] procedure OnLoadingStateChange(const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); procedure OnLoadStart(const browser: ICefBrowser; const frame: ICefFrame; transitionType: TCefTransitionType); @@ -1188,20 +1187,20 @@ type const errorText, failedUrl: ustring); end; - ICefRequestCallback = interface(ICefBase) + ICefRequestCallback = interface(ICefBaseRefCounted) ['{A35B8FD5-226B-41A8-A763-1940787D321C}'] procedure Cont(allow: Boolean); procedure Cancel; end; - ICefResponseFilter = interface(ICefBase) + ICefResponseFilter = interface(ICefBaseRefCounted) ['{5013BC3C-F1AE-407A-A571-A4C6B1D6831E}'] function InitFilter: Boolean; function Filter(dataIn: Pointer; dataInSize, dataInRead: NativeUInt; dataOut: Pointer; dataOutSize, dataOutWritten: NativeUInt): TCefResponseFilterStatus; end; - ICefRequestHandler = interface(ICefBase) + ICefRequestHandler = interface(ICefBaseRefCounted) ['{050877A9-D1F8-4EB3-B58E-50DC3E3D39FD}'] function OnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; isRedirect: Boolean): Boolean; function OnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean; @@ -1221,7 +1220,7 @@ type procedure OnRenderProcessTerminated(const browser: ICefBrowser; status: TCefTerminationStatus); end; - ICefDisplayHandler = interface(ICefBase) + ICefDisplayHandler = interface(ICefBaseRefCounted) ['{1EC7C76D-6969-41D1-B26D-079BCFF054C4}'] procedure OnAddressChange(const browser: ICefBrowser; const frame: ICefFrame; const url: ustring); procedure OnTitleChange(const browser: ICefBrowser; const title: ustring); @@ -1232,14 +1231,14 @@ type function OnConsoleMessage(const browser: ICefBrowser; const message, source: ustring; line: Integer): Boolean; end; - ICefFocusHandler = interface(ICefBase) + ICefFocusHandler = interface(ICefBaseRefCounted) ['{BB7FA3FA-7B1A-4ADC-8E50-12A24018DD90}'] procedure OnTakeFocus(const browser: ICefBrowser; next: Boolean); function OnSetFocus(const browser: ICefBrowser; source: TCefFocusSource): Boolean; procedure OnGotFocus(const browser: ICefBrowser); end; - ICefKeyboardHandler = interface(ICefBase) + ICefKeyboardHandler = interface(ICefBaseRefCounted) ['{0512F4EC-ED88-44C9-90D3-5C6D03D3B146}'] function OnPreKeyEvent(const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out isKeyboardShortcut: Boolean): Boolean; @@ -1247,7 +1246,7 @@ type osEvent: TCefEventHandle): Boolean; end; - ICefJsDialogHandler = interface(ICefBase) + ICefJsDialogHandler = interface(ICefBaseRefCounted) ['{64E18F86-DAC5-4ED1-8589-44DE45B9DB56}'] function OnJsdialog(const browser: ICefBrowser; const originUrl: ustring; dialogType: TCefJsDialogType; const messageText, defaultPromptText: ustring; @@ -1259,12 +1258,12 @@ type procedure OnDialogClosed(const browser: ICefBrowser); end; - ICefRunContextMenuCallback = interface(ICefBase) + ICefRunContextMenuCallback = interface(ICefBaseRefCounted) ['{44C3C6E3-B64D-4F6E-A318-4A0F3A72EB00}'] procedure Cont(commandId: Integer; eventFlags: TCefEventFlags); procedure Cancel; end; - ICefContextMenuHandler = interface(ICefBase) + ICefContextMenuHandler = interface(ICefBaseRefCounted) ['{C2951895-4087-49D5-BA18-4D9BA4F5EDD7}'] procedure OnBeforeContextMenu(const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel); @@ -1277,25 +1276,25 @@ type procedure OnContextMenuDismissed(const browser: ICefBrowser; const frame: ICefFrame); end; - ICefDialogHandler = interface(ICefBase) + ICefDialogHandler = interface(ICefBaseRefCounted) ['{7763F4B2-8BE1-4E80-AC43-8B825850DC67}'] function OnFileDialog(const browser: ICefBrowser; mode: TCefFileDialogMode; const title, defaultFilePath: ustring; acceptFilters: TStrings; selectedAcceptFilter: Integer; const callback: ICefFileDialogCallback): Boolean; end; - ICefGeolocationCallback = interface(ICefBase) + ICefGeolocationCallback = interface(ICefBaseRefCounted) ['{272B8E4F-4AE4-4F14-BC4E-5924FA0C149D}'] procedure Cont(allow: Boolean); end; - ICefGeolocationHandler = interface(ICefBase) + ICefGeolocationHandler = interface(ICefBaseRefCounted) ['{1178EE62-BAE7-4E44-932B-EAAC7A18191C}'] function OnRequestGeolocationPermission(const browser: ICefBrowser; const requestingUrl: ustring; requestId: Integer; const callback: ICefGeolocationCallback): Boolean; procedure OnCancelGeolocationPermission(const browser: ICefBrowser; requestId: Integer); end; - ICefRenderHandler = interface(ICefBase) + ICefRenderHandler = interface(ICefBaseRefCounted) ['{1FC1C22B-085A-4741-9366-5249B88EC410}'] function GetRootScreenRect(const browser: ICefBrowser; rect: PCefRect): Boolean; function GetViewRect(const browser: ICefBrowser; rect: PCefRect): Boolean; @@ -1311,7 +1310,7 @@ type procedure OnIMECompositionRangeChanged(const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect); end; - ICefClient = interface(ICefBase) + ICefClient = interface(ICefBaseRefCounted) ['{1D502075-2FF0-4E13-A112-9E541CD811F4}'] function GetContextMenuHandler: ICefContextMenuHandler; function GetDisplayHandler: ICefDisplayHandler; @@ -1328,7 +1327,7 @@ type sourceProcess: TCefProcessId; const message: ICefProcessMessage): Boolean; end; - ICefUrlRequest = interface(ICefBase) + ICefUrlRequest = interface(ICefBaseRefCounted) ['{59226AC1-A0FA-4D59-9DF4-A65C42391A67}'] function GetRequest: ICefRequest; function GetRequestStatus: TCefUrlRequestStatus; @@ -1337,7 +1336,7 @@ type procedure Cancel; end; - ICefUrlrequestClient = interface(ICefBase) + ICefUrlrequestClient = interface(ICefBaseRefCounted) ['{114155BD-C248-4651-9A4F-26F3F9A4F737}'] procedure OnRequestComplete(const request: ICefUrlRequest); procedure OnUploadProgress(const request: ICefUrlRequest; current, total: Int64); @@ -1347,38 +1346,38 @@ type const realm, scheme: ustring; const callback: ICefAuthCallback): Boolean; end; - ICefWebPluginInfoVisitor = interface(ICefBase) + ICefWebPluginInfoVisitor = interface(ICefBaseRefCounted) ['{7523D432-4424-4804-ACAD-E67D2313436E}'] function Visit(const info: ICefWebPluginInfo; count, total: Integer): Boolean; end; - ICefWebPluginUnstableCallback = interface(ICefBase) + ICefWebPluginUnstableCallback = interface(ICefBaseRefCounted) ['{67459829-EB47-4B7E-9D69-2EE77DF0E71E}'] procedure IsUnstable(const path: ustring; unstable: Boolean); end; - ICefRegisterCDMCallback = interface(ICefBase) + ICefRegisterCDMCallback = interface(ICefBaseRefCounted) ['{6C39AB3B-F724-483F-ABA0-37F6E0AECF35}'] procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring); end; - ICefEndTracingCallback = interface(ICefBase) + ICefEndTracingCallback = interface(ICefBaseRefCounted) ['{79020EBE-9D1D-49A6-9714-8778FE8929F2}'] procedure OnEndTracingComplete(const tracingFile: ustring); end; - ICefGetGeolocationCallback = interface(ICefBase) + ICefGetGeolocationCallback = interface(ICefBaseRefCounted) ['{ACB82FD9-3FFD-43F9-BF1A-A4849BF5B814}'] procedure OnLocationUpdate(const position: PCefGeoposition); end; - ICefFileDialogCallback = interface(ICefBase) + ICefFileDialogCallback = interface(ICefBaseRefCounted) ['{1AF659AB-4522-4E39-9C52-184000D8E3C7}'] procedure Cont(selectedAcceptFilter: Integer; filePaths: TStrings); procedure Cancel; end; - ICefDragData = interface(ICefBase) + ICefDragData = interface(ICefBaseRefCounted) ['{FBB6A487-F633-4055-AB3E-6619EDE75683}'] function Clone: ICefDragData; function IsReadOnly: Boolean; @@ -1404,7 +1403,7 @@ type procedure AddFile(const path, displayName: ustring); end; - ICefDragHandler = interface(ICefBase) + ICefDragHandler = interface(ICefBaseRefCounted) ['{59A89579-5B18-489F-A25C-5CC25FF831FC}'] function OnDragEnter(const browser: ICefBrowser; const dragData: ICefDragData; mask: TCefDragOperations): Boolean; @@ -1412,26 +1411,26 @@ type regionsCount: NativeUInt; regions: PCefDraggableRegionArray); end; - ICefFindHandler = interface(ICefBase) + ICefFindHandler = interface(ICefBaseRefCounted) ['{F20DF234-BD43-42B3-A80B-D354A9E5B787}'] procedure OnFindResult(const browser: ICefBrowser; identifier, count: Integer; const selectionRect: PCefRect; activeMatchOrdinal: Integer; finalUpdate: Boolean); end; - ICefRequestContextHandler = interface(ICefBase) + ICefRequestContextHandler = interface(ICefBaseRefCounted) ['{76EB1FA7-78DF-4FD5-ABB3-1CDD3E73A140}'] function GetCookieManager: ICefCookieManager; function OnBeforePluginLoad(const mimeType, pluginUrl:ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; pluginPolicy: PCefPluginPolicy): Boolean; end; - ICefResolveCallback = interface(ICefBase) + ICefResolveCallback = interface(ICefBaseRefCounted) ['{0C0EA252-7968-4163-A1BE-A1453576DD06}'] procedure OnResolveCompleted(result: TCefErrorCode; resolvedIps: TStrings); end; - ICefRequestContext = interface(ICefBase) + ICefRequestContext = interface(ICefBaseRefCounted) ['{5830847A-2971-4BD5-ABE6-21451F8923F7}'] function IsSame(const other: ICefRequestContext): Boolean; function IsSharingWith(const other: ICefRequestContext): Boolean; @@ -1455,7 +1454,7 @@ type function ResolveHostCached(const origin: ustring; resolvedIps: TStrings): TCefErrorCode; end; - ICefPrintSettings = Interface(ICefBase) + ICefPrintSettings = Interface(ICefBaseRefCounted) ['{ACBD2395-E9C1-49E5-B7F3-344DAA4A0F12}'] function IsValid: Boolean; function IsReadOnly: Boolean; @@ -1494,7 +1493,7 @@ type property DuplexMode: TCefDuplexMode read GetDuplexMode write SetDuplexMode; end; - ICefNavigationEntry = interface(ICefBase) + ICefNavigationEntry = interface(ICefBaseRefCounted) ['{D17B4B37-AA45-42D9-B4E4-AAB6FE2AB297}'] function IsValid: Boolean; function GetUrl: ustring; @@ -1517,7 +1516,7 @@ type property SSLStatus: ICefSSLStatus read GetSSLStatus; end; - ICefX509CertPrincipal = interface(ICefBase) + ICefX509CertPrincipal = interface(ICefBaseRefCounted) ['{CD3621ED-7D68-4A1F-95B5-190C7001B65F}'] function GetDisplayName: ustring; function GetCommonName: ustring; @@ -1530,7 +1529,7 @@ type procedure GetDomainComponents(components: TStrings); end; - ICefX509Certificate = interface(ICefBase) + ICefX509Certificate = interface(ICefBaseRefCounted) ['{C897979D-F068-4428-82DF-4221612FF7E0}'] function GetSubject: ICefX509CertPrincipal; function GetIssuer: ICefX509CertPrincipal; @@ -1544,13 +1543,13 @@ type function GetPEMEncodedIssuerChain(chainCount: NativeUInt): IInterfaceList; end; - ICefSslInfo = interface(ICefBase) + ICefSslInfo = interface(ICefBaseRefCounted) ['{67EC86BD-DE7D-453D-908F-AD15626C514F}'] function GetCertStatus: TCefCertStatus; function GetX509Certificate: ICefX509Certificate; end; - ICefSSLStatus = interface(ICefBase) + ICefSSLStatus = interface(ICefBaseRefCounted) ['{E3F004F2-03D5-46A2-91D0-510C50F3B225}'] function IsSecureConnection: boolean; function GetCertStatus: TCefCertStatus; @@ -1559,12 +1558,12 @@ type function GetX509Certificate: ICefX509Certificate; end; - ICefSelectClientCertificateCallback = interface(ICefBase) + ICefSelectClientCertificateCallback = interface(ICefBaseRefCounted) ['{003E3D09-ADE8-4C6E-A174-079D3D616608}'] procedure Select(const cert: ICefX509Certificate); end; - ICefResourceBundle = interface(ICefBase) + ICefResourceBundle = interface(ICefBaseRefCounted) ['{3213CF97-C854-452B-B615-39192F8D07DC}'] function GetLocalizedString(stringId: Integer): ustring; function GetDataResource(resourceId: Integer; @@ -1573,7 +1572,7 @@ type out data: Pointer; out dataSize: NativeUInt): Boolean; end; - ICefImage = interface(ICefBase) + ICefImage = interface(ICefBaseRefCounted) ['{E2C2F424-26A2-4498-BB45-DA23219831BE}'] function IsEmpty: Boolean; function IsSame(const that: ICefImage): Boolean; @@ -1599,9 +1598,12 @@ type property Height: NativeUInt read GetHeight; end; - ICefMenuModelDelegate = interface(ICefBase) + ICefMenuModelDelegate = interface(ICefBaseRefCounted) ['{1430D202-2795-433E-9A35-C79A0996F316}'] procedure ExecuteCommand(const menuModel: ICefMenuModel; commandId: Integer; eventFlags: TCefEventFlags); + procedure MouseOutsideMenu(const menuModel: ICefMenuModel; const screenPoint: PCefPoint); + procedure UnhandledOpenSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); + procedure UnhandledCloseSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); procedure MenuWillShow(const menuModel: ICefMenuModel); procedure MenuClosed(const menuModel: ICefMenuModel); function FormatLabel(const menuModel: ICefMenuModel; const label_ : ustring) : boolean; diff --git a/source/uCEFJsDialogCallback.pas b/source/uCEFJsDialogCallback.pas index 764d424d..b3ffe294 100644 --- a/source/uCEFJsDialogCallback.pas +++ b/source/uCEFJsDialogCallback.pas @@ -47,10 +47,10 @@ unit uCEFJsDialogCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefJsDialogCallbackRef = class(TCefBaseRef, ICefJsDialogCallback) + TCefJsDialogCallbackRef = class(TCefBaseRefCountedRef, ICefJsDialogCallback) protected procedure Cont(success: Boolean; const userInput: ustring); public diff --git a/source/uCEFJsDialogHandler.pas b/source/uCEFJsDialogHandler.pas index 149472b0..cca47f0e 100644 --- a/source/uCEFJsDialogHandler.pas +++ b/source/uCEFJsDialogHandler.pas @@ -47,10 +47,10 @@ unit uCEFJsDialogHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefJsDialogHandlerOwn = class(TCefBaseOwn, ICefJsDialogHandler) + TCefJsDialogHandlerOwn = class(TCefBaseRefCountedOwn, ICefJsDialogHandler) protected function OnJsdialog(const browser: ICefBrowser; const originUrl: ustring; dialogType: TCefJsDialogType; const messageText, defaultPromptText: ustring; const callback: ICefJsDialogCallback; out suppressMessage: Boolean): Boolean; virtual; function OnBeforeUnloadDialog(const browser: ICefBrowser; const messageText: ustring; isReload: Boolean; const callback: ICefJsDialogCallback): Boolean; virtual; diff --git a/source/uCEFKeyboardHandler.pas b/source/uCEFKeyboardHandler.pas index 82fad1cd..9dd249b9 100644 --- a/source/uCEFKeyboardHandler.pas +++ b/source/uCEFKeyboardHandler.pas @@ -47,10 +47,10 @@ unit uCEFKeyboardHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefKeyboardHandlerOwn = class(TCefBaseOwn, ICefKeyboardHandler) + TCefKeyboardHandlerOwn = class(TCefBaseRefCountedOwn, ICefKeyboardHandler) protected function OnPreKeyEvent(const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle; out isKeyboardShortcut: Boolean): Boolean; virtual; function OnKeyEvent(const browser: ICefBrowser; const event: PCefKeyEvent; osEvent: TCefEventHandle): Boolean; virtual; diff --git a/source/uCEFLibFunctions.pas b/source/uCEFLibFunctions.pas index 0ea74cd5..e4855e36 100644 --- a/source/uCEFLibFunctions.pas +++ b/source/uCEFLibFunctions.pas @@ -282,6 +282,8 @@ var cef_string_userfree_wide_free : procedure(str: PCefStringUserFreeWide); {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; cef_string_userfree_utf8_free : procedure(str: PCefStringUserFreeUtf8); {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; cef_string_userfree_utf16_free : procedure(str: PCefStringUserFreeUtf16); {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; + cef_string_utf16_to_lower : function(const src: PChar16; src_len: NativeUInt; output: PCefStringUtf16): Integer; {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; + cef_string_utf16_to_upper : function(const src: PChar16; src_len: NativeUInt; output: PCefStringUtf16): Integer; {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; // /include/internal/cef_thread_internal.h cef_get_current_platform_thread_id : function : TCefPlatformThreadId; {$IFDEF CPUX64}stdcall{$ELSE}cdecl{$ENDIF}; diff --git a/source/uCEFLifeSpanHandler.pas b/source/uCEFLifeSpanHandler.pas index a440dc7d..1bdf49c4 100644 --- a/source/uCEFLifeSpanHandler.pas +++ b/source/uCEFLifeSpanHandler.pas @@ -47,10 +47,10 @@ unit uCEFLifeSpanHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefLifeSpanHandlerOwn = class(TCefBaseOwn, ICefLifeSpanHandler) + TCefLifeSpanHandlerOwn = class(TCefBaseRefCountedOwn, ICefLifeSpanHandler) protected function OnBeforePopup(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): Boolean; virtual; procedure OnAfterCreated(const browser: ICefBrowser); virtual; diff --git a/source/uCEFListValue.pas b/source/uCEFListValue.pas index 8015cc8c..ca10dc4f 100644 --- a/source/uCEFListValue.pas +++ b/source/uCEFListValue.pas @@ -47,10 +47,10 @@ unit uCEFListValue; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefListValueRef = class(TCefBaseRef, ICefListValue) + TCefListValueRef = class(TCefBaseRefCountedRef, ICefListValue) protected function IsValid: Boolean; function IsOwned: Boolean; diff --git a/source/uCEFLoadHandler.pas b/source/uCEFLoadHandler.pas index 4693bc76..b76dc0b2 100644 --- a/source/uCEFLoadHandler.pas +++ b/source/uCEFLoadHandler.pas @@ -47,10 +47,10 @@ unit uCEFLoadHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefLoadHandlerOwn = class(TCefBaseOwn, ICefLoadHandler) + TCefLoadHandlerOwn = class(TCefBaseRefCountedOwn, ICefLoadHandler) protected procedure OnLoadingStateChange(const browser: ICefBrowser; isLoading, canGoBack, canGoForward: Boolean); virtual; procedure OnLoadStart(const browser: ICefBrowser; const frame: ICefFrame; transitionType: TCefTransitionType); virtual; diff --git a/source/uCEFMenuModel.pas b/source/uCEFMenuModel.pas index 6a8f21cf..9247db8e 100644 --- a/source/uCEFMenuModel.pas +++ b/source/uCEFMenuModel.pas @@ -47,11 +47,12 @@ unit uCEFMenuModel; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefMenuModelRef = class(TCefBaseRef, ICefMenuModel) + TCefMenuModelRef = class(TCefBaseRefCountedRef, ICefMenuModel) protected + function IsSubMenu: Boolean; function Clear: Boolean; function GetCount: Integer; function AddSeparator: Boolean; @@ -101,6 +102,12 @@ type function RemoveAcceleratorAt(index: Integer): Boolean; function GetAccelerator(commandId: Integer; out keyCode: Integer; out shiftPressed, ctrlPressed, altPressed: Boolean): Boolean; function GetAcceleratorAt(index: Integer; out keyCode: Integer; out shiftPressed, ctrlPressed, altPressed: Boolean): Boolean; + function SetColor(commandId: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; + function SetColorAt(index: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; + function GetColor(commandId: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; + function GetColorAt(index: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; + function SetFontList(commandId: Integer; const fontList: ustring): Boolean; + function SetFontListAt(index: Integer; const fontList: ustring): Boolean; public class function UnWrap(data: Pointer): ICefMenuModel; class function New(const delegate: ICefMenuModelDelegate): ICefMenuModel; @@ -153,6 +160,11 @@ begin Result := TCefMenuModelRef.UnWrap(PCefMenuModel(FData).add_sub_menu(PCefMenuModel(FData), commandId, @t)); end; +function TCefMenuModelRef.IsSubMenu: Boolean; +begin + Result := PCefMenuModel(FData).is_sub_menu(PCefMenuModel(FData)) <> 0; +end; + function TCefMenuModelRef.Clear: Boolean; begin Result := PCefMenuModel(FData).clear(PCefMenuModel(FData)) <> 0; @@ -183,6 +195,42 @@ begin altPressed := ap <> 0; end; +function TCefMenuModelRef.SetColor(commandId: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; +begin + Result := PCefMenuModel(FData).set_color(PCefMenuModel(FData), commandId, colorType, color) <> 0; +end; + +function TCefMenuModelRef.SetColorAt(index: Integer; colorType: TCefMenuColorType; color: TCefColor): Boolean; +begin + Result := PCefMenuModel(FData).set_color_at(PCefMenuModel(FData), index, colorType, color) <> 0; +end; + +function TCefMenuModelRef.GetColor(commandId: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; +begin + Result := PCefMenuModel(FData).get_color(PCefMenuModel(FData), commandId, colorType, @color) <> 0; +end; + +function TCefMenuModelRef.GetColorAt(index: Integer; colorType: TCefMenuColorType; out color: TCefColor): Boolean; +begin + Result := PCefMenuModel(FData).get_color_at(PCefMenuModel(FData), index, colorType, @color) <> 0; +end; + +function TCefMenuModelRef.SetFontList(commandId: Integer; const fontList: ustring): Boolean; +var + TempString : TCefString; +begin + TempString := CefString(fontList); + Result := PCefMenuModel(FData).set_font_list(PCefMenuModel(FData), commandId, @TempString) <> 0; +end; + +function TCefMenuModelRef.SetFontListAt(index: Integer; const fontList: ustring): Boolean; +var + TempString : TCefString; +begin + TempString := CefString(fontList); + Result := PCefMenuModel(FData).set_font_list_at(PCefMenuModel(FData), index, @TempString) <> 0; +end; + function TCefMenuModelRef.GetCommandIdAt(index: Integer): Integer; begin Result := PCefMenuModel(FData).get_command_id_at(PCefMenuModel(FData), index); diff --git a/source/uCEFMenuModelDelegate.pas b/source/uCEFMenuModelDelegate.pas index f0bcd7f4..8c825418 100644 --- a/source/uCEFMenuModelDelegate.pas +++ b/source/uCEFMenuModelDelegate.pas @@ -47,12 +47,15 @@ unit uCEFMenuModelDelegate; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefMenuModelDelegateOwn = class(TCefBaseOwn, ICefMenuModelDelegate) + TCefMenuModelDelegateOwn = class(TCefBaseRefCountedOwn, ICefMenuModelDelegate) protected procedure ExecuteCommand(const menuModel: ICefMenuModel; commandId: Integer; eventFlags: TCefEventFlags); virtual; + procedure MouseOutsideMenu(const menuModel: ICefMenuModel; const screenPoint: PCefPoint); virtual; + procedure UnhandledOpenSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); virtual; + procedure UnhandledCloseSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); virtual; procedure MenuWillShow(const menuModel: ICefMenuModel); virtual; procedure MenuClosed(const menuModel: ICefMenuModel); virtual; function FormatLabel(const menuModel: ICefMenuModel; const label_ : uString) : boolean; virtual; @@ -72,6 +75,30 @@ begin ExecuteCommand(TCefMenuModelRef.UnWrap(menu_model), command_id, event_flags); end; +procedure cef_menu_model_delegate_mouse_outside_menu(self: PCefMenuModelDelegate; + menu_model: PCefMenuModel; + const screen_point: PCefPoint); stdcall; +begin + with TCefMenuModelDelegateOwn(CefGetObject(self)) do + MouseOutsideMenu(TCefMenuModelRef.UnWrap(menu_model), screen_point); +end; + +procedure cef_menu_model_delegate_unhandled_open_submenu(self: PCefMenuModelDelegate; + menu_model: PCefMenuModel; + is_rtl: integer); stdcall; +begin + with TCefMenuModelDelegateOwn(CefGetObject(self)) do + UnhandledOpenSubmenu(TCefMenuModelRef.UnWrap(menu_model), is_rtl <> 0); +end; + +procedure cef_menu_model_delegate_unhandled_close_submenu(self: PCefMenuModelDelegate; + menu_model: PCefMenuModel; + is_rtl: integer); stdcall; +begin + with TCefMenuModelDelegateOwn(CefGetObject(self)) do + UnhandledCloseSubmenu(TCefMenuModelRef.UnWrap(menu_model), is_rtl <> 0); +end; + procedure cef_menu_model_delegate_menu_will_show(self: PCefMenuModelDelegate; menu_model: PCefMenuModel); stdcall; begin with TCefMenuModelDelegateOwn(CefGetObject(self)) do @@ -96,10 +123,13 @@ begin with PCefMenuModelDelegate(FData)^ do begin - execute_command := cef_menu_model_delegate_execute_command; - menu_will_show := cef_menu_model_delegate_menu_will_show; - menu_closed := cef_menu_model_delegate_menu_closed; - format_label := cef_menu_model_delegate_format_label; + execute_command := cef_menu_model_delegate_execute_command; + mouse_outside_menu := cef_menu_model_delegate_mouse_outside_menu; + unhandled_open_submenu := cef_menu_model_delegate_unhandled_open_submenu; + unhandled_close_submenu := cef_menu_model_delegate_unhandled_close_submenu; + menu_will_show := cef_menu_model_delegate_menu_will_show; + menu_closed := cef_menu_model_delegate_menu_closed; + format_label := cef_menu_model_delegate_format_label; end; end; @@ -110,6 +140,21 @@ begin end; +procedure TCefMenuModelDelegateOwn.MouseOutsideMenu(const menuModel: ICefMenuModel; const screenPoint: PCefPoint); +begin + +end; + +procedure TCefMenuModelDelegateOwn.UnhandledOpenSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); +begin + +end; + +procedure TCefMenuModelDelegateOwn.UnhandledCloseSubmenu(const menuModel: ICefMenuModel; isRTL: boolean); +begin + +end; + procedure TCefMenuModelDelegateOwn.MenuWillShow(const menuModel: ICefMenuModel); begin diff --git a/source/uCEFMiscFunctions.pas b/source/uCEFMiscFunctions.pas index 9611480e..4a8df488 100644 --- a/source/uCEFMiscFunctions.pas +++ b/source/uCEFMiscFunctions.pas @@ -73,7 +73,7 @@ function CefInt64GetLow(const int64_val: Int64): Integer; function CefInt64GetHigh(const int64_val: Int64): Integer; function CefGetObject(ptr: Pointer): TObject; -function CefGetData(const i: ICefBase): Pointer; +function CefGetData(const i: ICefBaseRefCounted): Pointer; function CefStringAlloc(const str: ustring): TCefString; function CefStringClearAndGet(var str: TCefString): ustring; @@ -116,9 +116,8 @@ procedure CefSetCrashKeyValue(const aKey, aValue : ustring); procedure CefLog(const aFile : string; aLine, aSeverity : integer; const aMessage : string); procedure OutputDebugMessage(const aMessage : string); -function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring; const handler: TCefResourceHandlerClass): Boolean; overload; -function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring; const factory: ICefSchemeHandlerFactory): Boolean; overload; -function CefClearSchemeHandlerFactories: Boolean; +function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring; const handler: TCefResourceHandlerClass): Boolean; +function CefClearSchemeHandlerFactories : boolean; function CefAddCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol, TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean; function CefRemoveCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol, TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean; @@ -206,7 +205,7 @@ begin Result := TObject(PPointer(ptr)^); end; -function CefGetData(const i: ICefBase): Pointer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} +function CefGetData(const i: ICefBaseRefCounted): Pointer; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} begin if (i <> nil) then Result := i.Wrap @@ -453,58 +452,54 @@ begin {$ENDIF} end; -function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring; - const handler: TCefResourceHandlerClass): Boolean; +function CefRegisterSchemeHandlerFactory(const SchemeName : ustring; + const HostName : ustring; + const handler : TCefResourceHandlerClass) : boolean; var - s, h: TCefString; + TempScheme, TempHostName : TCefString; + TempFactory : ICefSchemeHandlerFactory; begin - s := CefString(SchemeName); - h := CefString(HostName); - Result := cef_register_scheme_handler_factory( - @s, - @h, - CefGetData(TCefSchemeHandlerFactoryOwn.Create(handler) as ICefBase)) <> 0; + TempScheme := CefString(SchemeName); + TempHostName := CefString(HostName); + TempFactory := TCefSchemeHandlerFactoryOwn.Create(handler); + Result := cef_register_scheme_handler_factory(@TempScheme, @TempHostName, TempFactory.Wrap) <> 0; end; -function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring; - const factory: ICefSchemeHandlerFactory): Boolean; -var - s, h: TCefString; -begin - s := CefString(SchemeName); - h := CefString(HostName); - Result := cef_register_scheme_handler_factory( - @s, - @h, - CefGetData(factory as ICefBase)) <> 0; -end; - -function CefClearSchemeHandlerFactories: Boolean; +function CefClearSchemeHandlerFactories : boolean; begin Result := cef_clear_scheme_handler_factories <> 0; end; -function CefAddCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol, - TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean; +function CefAddCrossOriginWhitelistEntry(const SourceOrigin : ustring; + const TargetProtocol : ustring; + const TargetDomain : ustring; + AllowTargetSubdomains : Boolean): Boolean; var - so, tp, td: TCefString; + TempSourceOrigin, TempTargetProtocol, TempTargetDomain : TCefString; begin - so := CefString(SourceOrigin); - tp := CefString(TargetProtocol); - td := CefString(TargetDomain); - Result := cef_add_cross_origin_whitelist_entry(@so, @tp, @td, Ord(AllowTargetSubdomains)) <> 0; + TempSourceOrigin := CefString(SourceOrigin); + TempTargetProtocol := CefString(TargetProtocol); + TempTargetDomain := CefString(TargetDomain); + Result := cef_add_cross_origin_whitelist_entry(@TempSourceOrigin, + @TempTargetProtocol, + @TempTargetDomain, + Ord(AllowTargetSubdomains)) <> 0; end; -function CefRemoveCrossOriginWhitelistEntry( - const SourceOrigin, TargetProtocol, TargetDomain: ustring; - AllowTargetSubdomains: Boolean): Boolean; +function CefRemoveCrossOriginWhitelistEntry(const SourceOrigin : ustring; + const TargetProtocol : ustring; + const TargetDomain : ustring; + AllowTargetSubdomains : Boolean): Boolean; var - so, tp, td: TCefString; + TempSourceOrigin, TempTargetProtocol, TempTargetDomain : TCefString; begin - so := CefString(SourceOrigin); - tp := CefString(TargetProtocol); - td := CefString(TargetDomain); - Result := cef_remove_cross_origin_whitelist_entry(@so, @tp, @td, Ord(AllowTargetSubdomains)) <> 0; + TempSourceOrigin := CefString(SourceOrigin); + TempTargetProtocol := CefString(TargetProtocol); + TempTargetDomain := CefString(TargetDomain); + Result := cef_remove_cross_origin_whitelist_entry(@TempSourceOrigin, + @TempTargetProtocol, + @TempTargetDomain, + Ord(AllowTargetSubdomains)) <> 0; end; function CefClearCrossOriginWhitelist: Boolean; diff --git a/source/uCEFNavigationEntry.pas b/source/uCEFNavigationEntry.pas index 2b1e494c..935b3796 100644 --- a/source/uCEFNavigationEntry.pas +++ b/source/uCEFNavigationEntry.pas @@ -47,10 +47,10 @@ unit uCEFNavigationEntry; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefNavigationEntryRef = class(TCefBaseRef, ICefNavigationEntry) + TCefNavigationEntryRef = class(TCefBaseRefCountedRef, ICefNavigationEntry) protected function IsValid: Boolean; function GetUrl: ustring; diff --git a/source/uCEFNavigationEntryVisitor.pas b/source/uCEFNavigationEntryVisitor.pas index c906ca56..1970a937 100644 --- a/source/uCEFNavigationEntryVisitor.pas +++ b/source/uCEFNavigationEntryVisitor.pas @@ -47,10 +47,10 @@ unit uCEFNavigationEntryVisitor; interface uses - uCEFBase, uCEFInterfaces; + uCEFBaseRefCounted, uCEFInterfaces; type - TCefNavigationEntryVisitorOwn = class(TCefBaseOwn, ICefNavigationEntryVisitor) + TCefNavigationEntryVisitorOwn = class(TCefBaseRefCountedOwn, ICefNavigationEntryVisitor) protected function Visit(const entry: ICefNavigationEntry; current: Boolean; index, total: Integer): Boolean; virtual; diff --git a/source/uCEFPDFPrintCallback.pas b/source/uCEFPDFPrintCallback.pas index 1d2260a2..dcf64afc 100644 --- a/source/uCEFPDFPrintCallback.pas +++ b/source/uCEFPDFPrintCallback.pas @@ -47,10 +47,10 @@ unit uCEFPDFPrintCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefPdfPrintCallbackOwn = class(TCefBaseOwn, ICefPdfPrintCallback) + TCefPdfPrintCallbackOwn = class(TCefBaseRefCountedOwn, ICefPdfPrintCallback) protected procedure OnPdfPrintFinished(const path: ustring; ok: Boolean); virtual; abstract; diff --git a/source/uCEFPostData.pas b/source/uCEFPostData.pas index c8e460a7..f2a2b82e 100644 --- a/source/uCEFPostData.pas +++ b/source/uCEFPostData.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefPostDataRef = class(TCefBaseRef, ICefPostData) + TCefPostDataRef = class(TCefBaseRefCountedRef, ICefPostData) protected function IsReadOnly: Boolean; function HasExcludedElements: Boolean; diff --git a/source/uCEFPostDataElement.pas b/source/uCEFPostDataElement.pas index 0193e6c0..fd170451 100644 --- a/source/uCEFPostDataElement.pas +++ b/source/uCEFPostDataElement.pas @@ -47,10 +47,10 @@ unit uCEFPostDataElement; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefPostDataElementRef = class(TCefBaseRef, ICefPostDataElement) + TCefPostDataElementRef = class(TCefBaseRefCountedRef, ICefPostDataElement) protected function IsReadOnly: Boolean; procedure SetToEmpty; @@ -66,7 +66,7 @@ type class function New: ICefPostDataElement; end; - TCefPostDataElementOwn = class(TCefBaseOwn, ICefPostDataElement) + TCefPostDataElementOwn = class(TCefBaseRefCountedOwn, ICefPostDataElement) protected FDataType: TCefPostDataElementType; FValueByte: Pointer; diff --git a/source/uCEFPrintSettings.pas b/source/uCEFPrintSettings.pas index 55aff94e..9f84d854 100644 --- a/source/uCEFPrintSettings.pas +++ b/source/uCEFPrintSettings.pas @@ -47,10 +47,10 @@ unit uCEFPrintSettings; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefPrintSettingsRef = class(TCefBaseRef, ICefPrintSettings) + TCefPrintSettingsRef = class(TCefBaseRefCountedRef, ICefPrintSettings) protected function IsValid: Boolean; function IsReadOnly: Boolean; diff --git a/source/uCEFProcessMessage.pas b/source/uCEFProcessMessage.pas index e097374a..3d676464 100644 --- a/source/uCEFProcessMessage.pas +++ b/source/uCEFProcessMessage.pas @@ -47,10 +47,10 @@ unit uCEFProcessMessage; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefProcessMessageRef = class(TCefBaseRef, ICefProcessMessage) + TCefProcessMessageRef = class(TCefBaseRefCountedRef, ICefProcessMessage) protected function IsValid: Boolean; function IsReadOnly: Boolean; diff --git a/source/uCEFRegisterCDMCallback.pas b/source/uCEFRegisterCDMCallback.pas index 447a6e5b..7d0731ed 100644 --- a/source/uCEFRegisterCDMCallback.pas +++ b/source/uCEFRegisterCDMCallback.pas @@ -47,12 +47,12 @@ unit uCEFRegisterCDMCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type TCefRegisterCDMProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(result: TCefCDMRegistrationError; const error_message: ustring); - TCefRegisterCDMCallbackOwn = class(TCefBaseOwn, ICefRegisterCDMCallback) + TCefRegisterCDMCallbackOwn = class(TCefBaseRefCountedOwn, ICefRegisterCDMCallback) protected procedure OnCDMRegistrationComplete(result: TCefCDMRegistrationError; const error_message: ustring); virtual; diff --git a/source/uCEFRenderHandler.pas b/source/uCEFRenderHandler.pas index 4ca7c392..156ec794 100644 --- a/source/uCEFRenderHandler.pas +++ b/source/uCEFRenderHandler.pas @@ -47,10 +47,10 @@ unit uCEFRenderHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRenderHandlerOwn = class(TCefBaseOwn, ICefRenderHandler) + TCefRenderHandlerOwn = class(TCefBaseRefCountedOwn, ICefRenderHandler) protected function GetRootScreenRect(const browser: ICefBrowser; rect: PCefRect): Boolean; virtual; function GetViewRect(const browser: ICefBrowser; rect: PCefRect): Boolean; virtual; diff --git a/source/uCEFRenderProcessHandler.pas b/source/uCEFRenderProcessHandler.pas index 3185ebe0..07545acf 100644 --- a/source/uCEFRenderProcessHandler.pas +++ b/source/uCEFRenderProcessHandler.pas @@ -47,11 +47,11 @@ unit uCEFRenderProcessHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes, uCEFListValue, uCEFBrowser, uCEFFrame, uCEFRequest, + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFListValue, uCEFBrowser, uCEFFrame, uCEFRequest, uCEFv8Context, uCEFv8Exception, uCEFv8StackTrace, uCEFDomNode, uCEFProcessMessage; type - TCefRenderProcessHandlerOwn = class(TCefBaseOwn, ICefRenderProcessHandler) + TCefRenderProcessHandlerOwn = class(TCefBaseRefCountedOwn, ICefRenderProcessHandler) protected procedure OnRenderThreadCreated(const extraInfo: ICefListValue); virtual; procedure OnWebKitInitialized; virtual; diff --git a/source/uCEFRequest.pas b/source/uCEFRequest.pas index dd4bf3c2..cebfb2c5 100644 --- a/source/uCEFRequest.pas +++ b/source/uCEFRequest.pas @@ -47,10 +47,10 @@ unit uCEFRequest; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRequestRef = class(TCefBaseRef, ICefRequest) + TCefRequestRef = class(TCefBaseRefCountedRef, ICefRequest) protected function IsReadOnly: Boolean; function GetUrl: ustring; diff --git a/source/uCEFRequestCallback.pas b/source/uCEFRequestCallback.pas index ac0da2c1..effe6131 100644 --- a/source/uCEFRequestCallback.pas +++ b/source/uCEFRequestCallback.pas @@ -47,10 +47,10 @@ unit uCEFRequestCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRequestCallbackRef = class(TCefBaseRef, ICefRequestCallback) + TCefRequestCallbackRef = class(TCefBaseRefCountedRef, ICefRequestCallback) protected procedure Cont(allow: Boolean); procedure Cancel; diff --git a/source/uCEFRequestContext.pas b/source/uCEFRequestContext.pas index 4137cf07..65f482bb 100644 --- a/source/uCEFRequestContext.pas +++ b/source/uCEFRequestContext.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRequestContextRef = class(TCefBaseRef, ICefRequestContext) + TCefRequestContextRef = class(TCefBaseRefCountedRef, ICefRequestContext) protected function IsSame(const other: ICefRequestContext): Boolean; function IsSharingWith(const other: ICefRequestContext): Boolean; diff --git a/source/uCEFRequestContextHandler.pas b/source/uCEFRequestContextHandler.pas index e3e5aebf..a7c15b15 100644 --- a/source/uCEFRequestContextHandler.pas +++ b/source/uCEFRequestContextHandler.pas @@ -47,12 +47,12 @@ unit uCEFRequestContextHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type TCefRequestContextHandlerProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} function: ICefCookieManager; - TCefRequestContextHandlerRef = class(TCefBaseRef, ICefRequestContextHandler) + TCefRequestContextHandlerRef = class(TCefBaseRefCountedRef, ICefRequestContextHandler) protected function GetCookieManager: ICefCookieManager; function OnBeforePluginLoad(const mimeType, pluginUrl: ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; pluginPolicy: PCefPluginPolicy): Boolean; @@ -61,7 +61,7 @@ type class function UnWrap(data: Pointer): ICefRequestContextHandler; end; - TCefRequestContextHandlerOwn = class(TCefBaseOwn, ICefRequestContextHandler) + TCefRequestContextHandlerOwn = class(TCefBaseRefCountedOwn, ICefRequestContextHandler) protected function GetCookieManager: ICefCookieManager; virtual; function OnBeforePluginLoad(const mimeType, pluginUrl: ustring; isMainFrame : boolean; const topOriginUrl: ustring; const pluginInfo: ICefWebPluginInfo; pluginPolicy: PCefPluginPolicy): Boolean; virtual; diff --git a/source/uCEFRequestHandler.pas b/source/uCEFRequestHandler.pas index 44f7ab2d..59f1ee29 100644 --- a/source/uCEFRequestHandler.pas +++ b/source/uCEFRequestHandler.pas @@ -47,10 +47,10 @@ unit uCEFRequestHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRequestHandlerOwn = class(TCefBaseOwn, ICefRequestHandler) + TCefRequestHandlerOwn = class(TCefBaseRefCountedOwn, ICefRequestHandler) protected function OnBeforeBrowse(const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; isRedirect: Boolean): Boolean; virtual; function OnOpenUrlFromTab(const browser: ICefBrowser; const frame: ICefFrame; const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean): Boolean; virtual; diff --git a/source/uCEFResolveCallback.pas b/source/uCEFResolveCallback.pas index db10c07a..7685b207 100644 --- a/source/uCEFResolveCallback.pas +++ b/source/uCEFResolveCallback.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResolveCallbackOwn = class(TCefBaseOwn, ICefResolveCallback) + TCefResolveCallbackOwn = class(TCefBaseRefCountedOwn, ICefResolveCallback) protected procedure OnResolveCompleted(result: TCefErrorCode; resolvedIps: TStrings); virtual; abstract; public diff --git a/source/uCEFResourceBundle.pas b/source/uCEFResourceBundle.pas index a9fc5250..12d491b4 100644 --- a/source/uCEFResourceBundle.pas +++ b/source/uCEFResourceBundle.pas @@ -47,10 +47,10 @@ unit uCEFResourceBundle; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResourceBundleRef = class(TCefBaseRef, ICefResourceBundle) + TCefResourceBundleRef = class(TCefBaseRefCountedRef, ICefResourceBundle) protected function GetLocalizedString(stringId: Integer): ustring; function GetDataResource(resourceId: Integer; diff --git a/source/uCEFResourceBundleHandler.pas b/source/uCEFResourceBundleHandler.pas index 4d761b10..3a555ceb 100644 --- a/source/uCEFResourceBundleHandler.pas +++ b/source/uCEFResourceBundleHandler.pas @@ -47,10 +47,10 @@ unit uCEFResourceBundleHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResourceBundleHandlerOwn = class(TCefBaseOwn, ICefResourceBundleHandler) + TCefResourceBundleHandlerOwn = class(TCefBaseRefCountedOwn, ICefResourceBundleHandler) protected function GetDataResource(stringId: Integer; out data: Pointer; out dataSize: NativeUInt): Boolean; virtual; abstract; function GetLocalizedString(messageId: Integer; out stringVal: ustring): Boolean; virtual; abstract; diff --git a/source/uCEFResourceHandler.pas b/source/uCEFResourceHandler.pas index 8e703f36..e278dc01 100644 --- a/source/uCEFResourceHandler.pas +++ b/source/uCEFResourceHandler.pas @@ -47,10 +47,10 @@ unit uCEFResourceHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResourceHandlerOwn = class(TCefBaseOwn, ICefResourceHandler) + TCefResourceHandlerOwn = class(TCefBaseRefCountedOwn, ICefResourceHandler) protected function ProcessRequest(const request: ICefRequest; const callback: ICefCallback): Boolean; virtual; procedure GetResponseHeaders(const response: ICefResponse; out responseLength: Int64; out redirectUrl: ustring); virtual; @@ -124,38 +124,40 @@ begin Result := False; end; -constructor TCefResourceHandlerOwn.Create(const browser: ICefBrowser; - const frame: ICefFrame; const schemeName: ustring; - const request: ICefRequest); +constructor TCefResourceHandlerOwn.Create(const browser : ICefBrowser; + const frame : ICefFrame; + const schemeName : ustring; + const request : ICefRequest); begin inherited CreateData(SizeOf(TCefResourceHandler)); + with PCefResourceHandler(FData)^ do - begin - process_request := cef_resource_handler_process_request; - get_response_headers := cef_resource_handler_get_response_headers; - read_response := cef_resource_handler_read_response; - can_get_cookie := cef_resource_handler_can_get_cookie; - can_set_cookie := cef_resource_handler_can_set_cookie; - cancel:= cef_resource_handler_cancel; - end; + begin + process_request := cef_resource_handler_process_request; + get_response_headers := cef_resource_handler_get_response_headers; + read_response := cef_resource_handler_read_response; + can_get_cookie := cef_resource_handler_can_get_cookie; + can_set_cookie := cef_resource_handler_can_set_cookie; + cancel := cef_resource_handler_cancel; + end; end; -procedure TCefResourceHandlerOwn.GetResponseHeaders( - const response: ICefResponse; out responseLength: Int64; - out redirectUrl: ustring); +procedure TCefResourceHandlerOwn.GetResponseHeaders(const response : ICefResponse; + out responseLength : Int64; + out redirectUrl : ustring); begin end; -function TCefResourceHandlerOwn.ProcessRequest(const request: ICefRequest; - const callback: ICefCallback): Boolean; +function TCefResourceHandlerOwn.ProcessRequest(const request: ICefRequest; const callback: ICefCallback): Boolean; begin Result := False; end; -function TCefResourceHandlerOwn.ReadResponse(const dataOut: Pointer; - bytesToRead: Integer; var bytesRead: Integer; - const callback: ICefCallback): Boolean; +function TCefResourceHandlerOwn.ReadResponse(const dataOut : Pointer; + bytesToRead : Integer; + var bytesRead : Integer; + const callback : ICefCallback): Boolean; begin Result := False; end; diff --git a/source/uCEFResponse.pas b/source/uCEFResponse.pas index 997c9b8e..eaac399b 100644 --- a/source/uCEFResponse.pas +++ b/source/uCEFResponse.pas @@ -47,10 +47,10 @@ unit uCEFResponse; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResponseRef = class(TCefBaseRef, ICefResponse) + TCefResponseRef = class(TCefBaseRefCountedRef, ICefResponse) protected function IsReadOnly: Boolean; function GetError: TCefErrorCode; diff --git a/source/uCEFResponseFilter.pas b/source/uCEFResponseFilter.pas index 33f168ab..03cc960c 100644 --- a/source/uCEFResponseFilter.pas +++ b/source/uCEFResponseFilter.pas @@ -47,10 +47,10 @@ unit uCEFResponseFilter; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefResponseFilterOwn = class(TCefBaseOwn, ICefResponseFilter) + TCefResponseFilterOwn = class(TCefBaseRefCountedOwn, ICefResponseFilter) protected function InitFilter: Boolean; virtual; abstract; function Filter(dataIn: Pointer; dataInSize, dataInRead: NativeUInt; dataOut: Pointer; diff --git a/source/uCEFRunContextMenuCallback.pas b/source/uCEFRunContextMenuCallback.pas index 2b2b6c35..732c01a6 100644 --- a/source/uCEFRunContextMenuCallback.pas +++ b/source/uCEFRunContextMenuCallback.pas @@ -47,10 +47,10 @@ unit uCEFRunContextMenuCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefRunContextMenuCallbackRef = class(TCefBaseRef, ICefRunContextMenuCallback) + TCefRunContextMenuCallbackRef = class(TCefBaseRefCountedRef, ICefRunContextMenuCallback) protected procedure Cont(commandId: Integer; eventFlags: TCefEventFlags); procedure Cancel; diff --git a/source/uCEFRunFileDialogCallback.pas b/source/uCEFRunFileDialogCallback.pas index 0a761bf8..308116e3 100644 --- a/source/uCEFRunFileDialogCallback.pas +++ b/source/uCEFRunFileDialogCallback.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces; + uCEFBaseRefCounted, uCEFInterfaces; type - TCefRunFileDialogCallbackOwn = class(TCefBaseOwn, ICefRunFileDialogCallback) + TCefRunFileDialogCallbackOwn = class(TCefBaseRefCountedOwn, ICefRunFileDialogCallback) protected procedure OnFileDialogDismissed(selectedAcceptFilter: Integer; filePaths: TStrings); virtual; diff --git a/source/uCEFSSLStatus.pas b/source/uCEFSSLStatus.pas index 59264c39..c4798389 100644 --- a/source/uCEFSSLStatus.pas +++ b/source/uCEFSSLStatus.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefSSLStatusRef = class(TCefBaseRef, ICefSSLStatus) + TCefSSLStatusRef = class(TCefBaseRefCountedRef, ICefSSLStatus) protected function IsSecureConnection: boolean; function GetCertStatus: TCefCertStatus; diff --git a/source/uCEFSchemeHandlerFactory.pas b/source/uCEFSchemeHandlerFactory.pas index 30807ac4..0efe53ce 100644 --- a/source/uCEFSchemeHandlerFactory.pas +++ b/source/uCEFSchemeHandlerFactory.pas @@ -47,12 +47,12 @@ unit uCEFSchemeHandlerFactory; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes, uCEFResourceHandler; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFResourceHandler; type - TCefSchemeHandlerFactoryOwn = class(TCefBaseOwn, ICefSchemeHandlerFactory) + TCefSchemeHandlerFactoryOwn = class(TCefBaseRefCountedOwn, ICefSchemeHandlerFactory) protected - FClass: TCefResourceHandlerClass; + FClass : TCefResourceHandlerClass; function New(const browser: ICefBrowser; const frame: ICefFrame; const schemeName: ustring; const request: ICefRequest): ICefResourceHandler; virtual; @@ -65,28 +65,33 @@ implementation uses uCEFMiscFunctions, uCEFLibFunctions, uCEFBrowser, uCEFFrame, uCEFRequest; -function cef_scheme_handler_factory_create(self: PCefSchemeHandlerFactory; - browser: PCefBrowser; frame: PCefFrame; const scheme_name: PCefString; - request: PCefRequest): PCefResourceHandler; stdcall; +function cef_scheme_handler_factory_create( self : PCefSchemeHandlerFactory; + browser : PCefBrowser; + frame : PCefFrame; + const scheme_name : PCefString; + request : PCefRequest): PCefResourceHandler; stdcall; begin - with TCefSchemeHandlerFactoryOwn(CefGetObject(self)) do - Result := CefGetData(New(TCefBrowserRef.UnWrap(browser), TCefFrameRef.UnWrap(frame), - CefString(scheme_name), TCefRequestRef.UnWrap(request))); + Result := CefGetData(New(TCefBrowserRef.UnWrap(browser), + TCefFrameRef.UnWrap(frame), + CefString(scheme_name), + TCefRequestRef.UnWrap(request))); end; -constructor TCefSchemeHandlerFactoryOwn.Create( - const AClass: TCefResourceHandlerClass); +constructor TCefSchemeHandlerFactoryOwn.Create(const AClass: TCefResourceHandlerClass); begin inherited CreateData(SizeOf(TCefSchemeHandlerFactory)); + FClass := AClass; + with PCefSchemeHandlerFactory(FData)^ do create := cef_scheme_handler_factory_create; end; -function TCefSchemeHandlerFactoryOwn.New(const browser: ICefBrowser; - const frame: ICefFrame; const schemeName: ustring; - const request: ICefRequest): ICefResourceHandler; +function TCefSchemeHandlerFactoryOwn.New(const browser : ICefBrowser; + const frame : ICefFrame; + const schemeName : ustring; + const request : ICefRequest): ICefResourceHandler; begin Result := FClass.Create(browser, frame, schemeName, request); end; diff --git a/source/uCEFSchemeRegistrar.pas b/source/uCEFSchemeRegistrar.pas index d325e8f9..0377356b 100644 --- a/source/uCEFSchemeRegistrar.pas +++ b/source/uCEFSchemeRegistrar.pas @@ -47,15 +47,12 @@ unit uCEFSchemeRegistrar; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseScopedWrapper, uCEFTypes; type - TCefSchemeRegistrarRef = class(TCefBaseRef, ICefSchemeRegistrar) - protected - function AddCustomScheme(const schemeName: ustring; IsStandard, IsLocal, IsDisplayIsolated: Boolean): Boolean; stdcall; - + TCefSchemeRegistrarRef = class(TCEFBaseScopedWrapperRef) public - class function UnWrap(data: Pointer): ICefSchemeRegistrar; + function AddCustomScheme(const schemeName: ustring; IsStandard, IsLocal, IsDisplayIsolated, IsSecure, IsCorsEnabled: Boolean): Boolean; stdcall; end; implementation @@ -63,19 +60,18 @@ implementation uses uCEFMiscFunctions; -function TCefSchemeRegistrarRef.AddCustomScheme(const schemeName: ustring; IsStandard, IsLocal, IsDisplayIsolated: Boolean): Boolean; +function TCefSchemeRegistrarRef.AddCustomScheme(const schemeName: ustring; IsStandard, IsLocal, IsDisplayIsolated, IsSecure, IsCorsEnabled: Boolean): Boolean; var sn: TCefString; begin sn := CefString(schemeName); - Result := PCefSchemeRegistrar(FData).add_custom_scheme(PCefSchemeRegistrar(FData), @sn, Ord(IsStandard), Ord(IsLocal), Ord(IsDisplayIsolated)) <> 0; -end; - -class function TCefSchemeRegistrarRef.UnWrap(data: Pointer): ICefSchemeRegistrar; -begin - if data <> nil then - Result := Create(data) as ICefSchemeRegistrar else - Result := nil; + Result := PCefSchemeRegistrar(FData).add_custom_scheme(PCefSchemeRegistrar(FData), + @sn, + Ord(IsStandard), + Ord(IsLocal), + Ord(IsDisplayIsolated), + Ord(isSecure), + Ord(IsCorsEnabled)) <> 0; end; end. diff --git a/source/uCEFSelectClientCertificateCallback.pas b/source/uCEFSelectClientCertificateCallback.pas index 03b19dbb..7517b0f7 100644 --- a/source/uCEFSelectClientCertificateCallback.pas +++ b/source/uCEFSelectClientCertificateCallback.pas @@ -47,10 +47,10 @@ unit uCEFSelectClientCertificateCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefSelectClientCertificateCallbackRef = class(TCefBaseRef, ICefSelectClientCertificateCallback) + TCefSelectClientCertificateCallbackRef = class(TCefBaseRefCountedRef, ICefSelectClientCertificateCallback) protected procedure Select(const cert: ICefX509Certificate); diff --git a/source/uCEFSetCookieCallback.pas b/source/uCEFSetCookieCallback.pas index 771ca37a..e423d306 100644 --- a/source/uCEFSetCookieCallback.pas +++ b/source/uCEFSetCookieCallback.pas @@ -47,10 +47,10 @@ unit uCEFSetCookieCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefSetCookieCallbackOwn = class(TCefBaseOwn, ICefSetCookieCallback) + TCefSetCookieCallbackOwn = class(TCefBaseRefCountedOwn, ICefSetCookieCallback) protected procedure OnComplete(success: Boolean); virtual; abstract; diff --git a/source/uCEFSslInfo.pas b/source/uCEFSslInfo.pas index 1f6105ef..9bf309c9 100644 --- a/source/uCEFSslInfo.pas +++ b/source/uCEFSslInfo.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefSslInfoRef = class(TCefBaseRef, ICefSslInfo) + TCefSslInfoRef = class(TCefBaseRefCountedRef, ICefSslInfo) protected function GetCertStatus: TCefCertStatus; function GetX509Certificate: ICefX509Certificate; diff --git a/source/uCEFStreamReader.pas b/source/uCEFStreamReader.pas index d825c660..941944a6 100644 --- a/source/uCEFStreamReader.pas +++ b/source/uCEFStreamReader.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefStreamReaderRef = class(TCefBaseRef, ICefStreamReader) + TCefStreamReaderRef = class(TCefBaseRefCountedRef, ICefStreamReader) protected function Read(ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; diff --git a/source/uCEFStreamWriter.pas b/source/uCEFStreamWriter.pas index 162d3a8c..ef007f9d 100644 --- a/source/uCEFStreamWriter.pas +++ b/source/uCEFStreamWriter.pas @@ -47,10 +47,10 @@ unit uCEFStreamWriter; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefStreamWriterRef = class(TCefBaseRef, ICefStreamWriter) + TCefStreamWriterRef = class(TCefBaseRefCountedRef, ICefStreamWriter) protected function write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; function Seek(offset: Int64; whence: Integer): Integer; diff --git a/source/uCEFStringMap.pas b/source/uCEFStringMap.pas index 2df05d35..20b7b70e 100644 --- a/source/uCEFStringMap.pas +++ b/source/uCEFStringMap.pas @@ -47,7 +47,7 @@ unit uCEFStringMap; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type TCefStringMapOwn = class(TInterfacedObject, ICefStringMap) diff --git a/source/uCEFStringMultimap.pas b/source/uCEFStringMultimap.pas index d71408f9..878893de 100644 --- a/source/uCEFStringMultimap.pas +++ b/source/uCEFStringMultimap.pas @@ -47,7 +47,7 @@ unit uCEFStringMultimap; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type TCefStringMultimapOwn = class(TInterfacedObject, ICefStringMultimap) diff --git a/source/uCEFStringVisitor.pas b/source/uCEFStringVisitor.pas index 84372551..c221027c 100644 --- a/source/uCEFStringVisitor.pas +++ b/source/uCEFStringVisitor.pas @@ -47,10 +47,10 @@ unit uCEFStringVisitor; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefStringVisitorOwn = class(TCefBaseOwn, ICefStringVisitor) + TCefStringVisitorOwn = class(TCefBaseRefCountedOwn, ICefStringVisitor) protected procedure Visit(const str: ustring); virtual; diff --git a/source/uCEFTask.pas b/source/uCEFTask.pas index 857f043b..e1d017be 100644 --- a/source/uCEFTask.pas +++ b/source/uCEFTask.pas @@ -47,10 +47,10 @@ unit uCEFTask; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefTaskOwn = class(TCefBaseOwn, ICefTask) + TCefTaskOwn = class(TCefBaseRefCountedOwn, ICefTask) protected procedure Execute; virtual; @@ -58,7 +58,7 @@ type constructor Create; virtual; end; - TCefTaskRef = class(TCefBaseRef, ICefTask) + TCefTaskRef = class(TCefBaseRefCountedRef, ICefTask) protected procedure Execute; virtual; diff --git a/source/uCEFTaskRunner.pas b/source/uCEFTaskRunner.pas index 9e1a9cd3..7ea8275d 100644 --- a/source/uCEFTaskRunner.pas +++ b/source/uCEFTaskRunner.pas @@ -47,10 +47,10 @@ unit uCEFTaskRunner; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefTaskRunnerRef = class(TCefBaseRef, ICefTaskRunner) + TCefTaskRunnerRef = class(TCefBaseRefCountedRef, ICefTaskRunner) protected function IsSame(const that: ICefTaskRunner): Boolean; function BelongsToCurrentThread: Boolean; diff --git a/source/uCEFThread.pas b/source/uCEFThread.pas index d09fd027..9d775c12 100644 --- a/source/uCEFThread.pas +++ b/source/uCEFThread.pas @@ -47,10 +47,10 @@ unit uCEFThread; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefThreadRef = class(TCefBaseRef, ICefThread) + TCefThreadRef = class(TCefBaseRefCountedRef, ICefThread) protected function GetTaskRunner : ICefTaskRunner; function GetPlatformThreadID : TCefPlatformThreadId; diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas index 798b7fb0..311dd4fb 100644 --- a/source/uCEFTypes.pas +++ b/source/uCEFTypes.pas @@ -63,7 +63,8 @@ type PPCefBinaryValue = ^PCefBinaryValue; PCefSchemeRegistrar = ^TCefSchemeRegistrar; PCefCommandLine = ^TCefCommandLine; - PCefBase = ^TCefBase; + PCefBaseRefCounted = ^TCefBaseRefCounted; + PCefBaseScoped = ^TCefBaseScoped; PCefWindowInfo = ^TCefWindowInfo; PCefSettings = ^TCefSettings; PCefStringUtf8 = ^TCefStringUtf8; @@ -920,6 +921,17 @@ type CEF_MENU_ANCHOR_BOTTOMCENTER ); + // /include/internal/cef_types.h (cef_menu_color_type_t) + TCefMenuColorType = ( + CEF_MENU_COLOR_TEXT, + CEF_MENU_COLOR_TEXT_HOVERED, + CEF_MENU_COLOR_TEXT_ACCELERATOR, + CEF_MENU_COLOR_TEXT_ACCELERATOR_HOVERED, + CEF_MENU_COLOR_BACKGROUND, + CEF_MENU_COLOR_BACKGROUND_HOVERED, + CEF_MENU_COLOR_COUNT + ); + // /include/internal/cef_types.h (cef_ssl_content_status_t) TCefSSLContentStatusFlags = ( SSL_CONTENT_DISPLAYED_INSECURE_CONTENT, @@ -955,17 +967,23 @@ type millisecond: Integer; end; - // /include/capi/cef_base_capi.h (cef_base_t) - TCefBase = record + // /include/capi/cef_base_capi.h (cef_base_ref_counted_t) + TCefBaseRefCounted = record size: NativeUInt; - add_ref: procedure(self: PCefBase); stdcall; - release: function(self: PCefBase): Integer; stdcall; - has_one_ref: function(self: PCefBase): Integer; stdcall; + add_ref: procedure(self: PCefBaseRefCounted); stdcall; + release: function(self: PCefBaseRefCounted): Integer; stdcall; + has_one_ref: function(self: PCefBaseRefCounted): Integer; stdcall; + end; + + // /include/capi/cef_base_capi.h (cef_base_scoped_t) + TCefBaseScoped = record + size: NativeUInt; + del: procedure(self: PCefBaseScoped); stdcall; end; // /include/capi/cef_stream_capi.h (cef_stream_writer_t) TCefStreamWriter = record - base: TCefBase; + base: TCefBaseRefCounted; write: function(self: PCefStreamWriter; const ptr: Pointer; size, n: NativeUInt): NativeUInt; stdcall; seek: function(self: PCefStreamWriter; offset: Int64; whence: Integer): Integer; stdcall; tell: function(self: PCefStreamWriter): Int64; stdcall; @@ -1037,7 +1055,7 @@ type // /include/capi/cef_x509_certificate_capi.h (cef_x509cert_principal_t) TCefX509CertPrincipal = record - base: TCefBase; + base: TCefBaseRefCounted; get_display_name: function(self: PCefX509CertPrincipal): PCefStringUserFree; stdcall; get_common_name: function(self: PCefX509CertPrincipal): PCefStringUserFree; stdcall; get_locality_name: function(self: PCefX509CertPrincipal): PCefStringUserFree; stdcall; @@ -1051,7 +1069,7 @@ type // /include/capi/cef_x509_certificate_capi.h (cef_x509certificate_t) TCefX509Certificate = record - base: TCefBase; + base: TCefBaseRefCounted; get_subject: function(self: PCefX509Certificate): PCefX509CertPrincipal; stdcall; get_issuer: function(self: PCefX509Certificate): PCefX509CertPrincipal; stdcall; get_serial_number: function(self: PCefX509Certificate): PCefBinaryValue; stdcall; @@ -1066,14 +1084,14 @@ type // /include/capi/cef_ssl_info_capi.h (cef_sslinfo_t) TCefSslInfo = record - base: TCefBase; + base: TCefBaseRefCounted; get_cert_status: function(self: PCefSslInfo): TCefCertStatus; stdcall; get_x509certificate: function(self: PCefSslInfo): PCefX509Certificate; stdcall; end; // /include/capi/cef_ssl_status_capi.h (cef_sslstatus_t) TCefSSLStatus = record - base: TCefBase; + base: TCefBaseRefCounted; is_secure_connection: function(self: PCefSSLStatus): integer; stdcall; get_cert_status: function(self: PCefSSLStatus): TCefCertStatus; stdcall; get_sslversion: function(self: PCefSSLStatus): TCefSSLVersion; stdcall; @@ -1083,33 +1101,33 @@ type // /include/capi/cef_request_handler_capi.h (cef_select_client_certificate_callback_t) TCefSelectClientCertificateCallback = record - base: TCefBase; + base: TCefBaseRefCounted; select: procedure(self: PCefSelectClientCertificateCallback; cert: PCefX509Certificate); stdcall; end; // /include/capi/cef_context_menu_handler_capi.h (cef_run_context_menu_callback_t) TCefRunContextMenuCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefRunContextMenuCallback; command_id: Integer; event_flags: TCefEventFlags); stdcall; cancel: procedure(self: PCefRunContextMenuCallback); stdcall; end; // /include/capi/cef_dialog_handler_capi.h (cef_file_dialog_callback_t) TCefFileDialogCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefFileDialogCallback; selected_accept_filter: Integer; file_paths: TCefStringList); stdcall; cancel: procedure(self: PCefFileDialogCallback); stdcall; end; // /include/capi/cef_dialog_handler_capi.h (cef_dialog_handler_t) TCefDialogHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_file_dialog: function(self: PCefDialogHandler; browser: PCefBrowser; mode: TCefFileDialogMode; const title, default_file_path: PCefString; accept_filters: TCefStringList; selected_accept_filter: Integer; callback: PCefFileDialogCallback): Integer; stdcall; end; // /include/capi/cef_display_handler_capi.h (cef_display_handler_t) TCefDisplayHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_address_change: procedure(self: PCefDisplayHandler; browser: PCefBrowser; frame: PCefFrame; const url: PCefString); stdcall; on_title_change: procedure(self: PCefDisplayHandler; browser: PCefBrowser; const title: PCefString); stdcall; on_favicon_urlchange: procedure(self: PCefDisplayHandler; browser: PCefBrowser; icon_urls: TCefStringList); stdcall; @@ -1121,7 +1139,7 @@ type // /include/capi/cef_download_handler_capi.h (cef_download_handler_t) TCefDownloadHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_before_download: procedure(self: PCefDownloadHandler; browser: PCefBrowser; download_item: PCefDownloadItem; const suggested_name: PCefString; callback: PCefBeforeDownloadCallback); stdcall; on_download_updated: procedure(self: PCefDownloadHandler; browser: PCefBrowser; download_item: PCefDownloadItem; callback: PCefDownloadItemCallback); stdcall; end; @@ -1136,20 +1154,20 @@ type // /include/capi/cef_drag_handler_capi.h (cef_drag_handler_t) TCefDragHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_drag_enter: function(self: PCefDragHandler; browser: PCefBrowser; dragData: PCefDragData; mask: TCefDragOperations): Integer; stdcall; on_draggable_regions_changed: procedure(self: PCefDragHandler; browser: PCefBrowser; regionsCount: NativeUInt; regions: PCefDraggableRegionArray); stdcall; end; // /include/capi/cef_find_handler_capi.h (cef_find_handler_t) TCefFindHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_find_result: procedure(self: PCefFindHandler; browser: PCefBrowser; identifier, count: Integer; const selection_rect: PCefRect; active_match_ordinal, final_update: Integer); stdcall; end; // /include/capi/cef_focus_handler_capi.h (cef_focus_handler_t) TCefFocusHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_take_focus: procedure(self: PCefFocusHandler; browser: PCefBrowser; next: Integer); stdcall; on_set_focus: function(self: PCefFocusHandler; browser: PCefBrowser; source: TCefFocusSource): Integer; stdcall; on_got_focus: procedure(self: PCefFocusHandler; browser: PCefBrowser); stdcall; @@ -1157,7 +1175,7 @@ type // /include/capi/cef_jsdialog_handler_capi.h (cef_jsdialog_handler_t) TCefJsDialogHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_jsdialog: function(self: PCefJsDialogHandler; browser: PCefBrowser; const origin_url: PCefString; dialog_type: TCefJsDialogType; const message_text, default_prompt_text: PCefString; callback: PCefJsDialogCallback; suppress_message: PInteger): Integer; stdcall; on_before_unload_dialog: function(self: PCefJsDialogHandler; browser: PCefBrowser; const message_text: PCefString; is_reload: Integer; callback: PCefJsDialogCallback): Integer; stdcall; on_reset_dialog_state: procedure(self: PCefJsDialogHandler; browser: PCefBrowser); stdcall; @@ -1166,20 +1184,20 @@ type // /include/capi/cef_jsdialog_handler_capi.h (cef_jsdialog_callback_t) TCefJsDialogCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefJsDialogCallback; success: Integer; const user_input: PCefString); stdcall; end; // /include/capi/cef_geolocation_handler_capi.h (cef_geolocation_handler_t) TCefGeolocationHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_request_geolocation_permission: function(self: PCefGeolocationHandler; browser: PCefBrowser; const requesting_url: PCefString; request_id: Integer; callback: PCefGeolocationCallback): Integer; stdcall; on_cancel_geolocation_permission: procedure(self: PCefGeolocationHandler; browser: PCefBrowser; request_id: Integer); stdcall; end; // /include/capi/cef_geolocation_handler_capi.h (cef_geolocation_callback_t) TCefGeolocationCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefGeolocationCallback; allow: Integer); stdcall; end; @@ -1197,14 +1215,14 @@ type // /include/capi/cef_keyboard_handler_capi.h (cef_keyboard_handler_t) TCefKeyboardHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_pre_key_event: function(self: PCefKeyboardHandler; browser: PCefBrowser; const event: PCefKeyEvent; os_event: TCefEventHandle; is_keyboard_shortcut: PInteger): Integer; stdcall; on_key_event: function(self: PCefKeyboardHandler; browser: PCefBrowser; const event: PCefKeyEvent; os_event: TCefEventHandle): Integer; stdcall; end; // /include/capi/cef_life_span_handler_capi.h (cef_life_span_handler_t) TCefLifeSpanHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_before_popup: function(self: PCefLifeSpanHandler; browser: PCefBrowser; frame: PCefFrame; const target_url, target_frame_name: PCefString; target_disposition: TCefWindowOpenDisposition; user_gesture: Integer; const popupFeatures: PCefPopupFeatures; windowInfo: PCefWindowInfo; var client: PCefClient; settings: PCefBrowserSettings; no_javascript_access: PInteger): Integer; stdcall; on_after_created: procedure(self: PCefLifeSpanHandler; browser: PCefBrowser); stdcall; do_close: function(self: PCefLifeSpanHandler; browser: PCefBrowser): Integer; stdcall; @@ -1271,7 +1289,7 @@ type // /include/capi/cef_load_handler_capi.h (cef_load_handler_t) TCefLoadHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_loading_state_change: procedure(self: PCefLoadHandler; browser: PCefBrowser; isLoading, canGoBack, canGoForward: Integer); stdcall; on_load_start: procedure(self: PCefLoadHandler; browser: PCefBrowser; frame: PCefFrame; transition_type:TCefTransitionType); stdcall; on_load_end: procedure(self: PCefLoadHandler; browser: PCefBrowser; frame: PCefFrame; httpStatusCode: Integer); stdcall; @@ -1280,7 +1298,7 @@ type // /include/capi/cef_render_handler_capi.h (cef_render_handler_t) TCefRenderHandler = record - base: TCefBase; + base: TCefBaseRefCounted; get_root_screen_rect: function(self: PCefRenderHandler; browser: PCefBrowser; rect: PCefRect): Integer; stdcall; get_view_rect: function(self: PCefRenderHandler; browser: PCefBrowser; rect: PCefRect): Integer; stdcall; get_screen_point: function(self: PCefRenderHandler; browser: PCefBrowser; viewX, viewY: Integer; screenX, screenY: PInteger): Integer; stdcall; @@ -1307,7 +1325,7 @@ type // /include/capi/cef_v8_capi.h (cef_v8stack_trace_t) TCefV8StackTrace = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefV8StackTrace): Integer; stdcall; get_frame_count: function(self: PCefV8StackTrace): Integer; stdcall; get_frame: function(self: PCefV8StackTrace; index: Integer): PCefV8StackFrame; stdcall; @@ -1315,7 +1333,7 @@ type // /include/capi/cef_v8_capi.h (cef_v8stack_frame_t) TCefV8StackFrame = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefV8StackFrame): Integer; stdcall; get_script_name: function(self: PCefV8StackFrame): PCefStringUserFree; stdcall; get_script_name_or_source_url: function(self: PCefV8StackFrame): PCefStringUserFree; stdcall; @@ -1328,7 +1346,7 @@ type // /include/capi/cef_stream_capi.h (cef_stream_reader_t) TCefStreamReader = record - base: TCefBase; + base: TCefBaseRefCounted; read: function(self: PCefStreamReader; ptr: Pointer; size, n: NativeUInt): NativeUInt; stdcall; seek: function(self: PCefStreamReader; offset: Int64; whence: Integer): Integer; stdcall; tell: function(self: PCefStreamReader): Int64; stdcall; @@ -1338,7 +1356,7 @@ type // /include/capi/cef_stream_capi.h (cef_read_handler_t) TCefReadHandler = record - base: TCefBase; + base: TCefBaseRefCounted; read: function(self: PCefReadHandler; ptr: Pointer; size, n: NativeUInt): NativeUInt; stdcall; seek: function(self: PCefReadHandler; offset: Int64; whence: Integer): Integer; stdcall; tell: function(self: PCefReadHandler): Int64; stdcall; @@ -1348,7 +1366,7 @@ type // /include/capi/cef_stream_capi.h (cef_write_handler_t) TCefWriteHandler = record - base: TCefBase; + base: TCefBaseRefCounted; write: function(self: PCefWriteHandler; const ptr: Pointer; size, n: NativeUInt): NativeUInt; stdcall; seek: function(self: PCefWriteHandler; offset: Int64; whence: Integer): Integer; stdcall; tell: function(self: PCefWriteHandler): Int64; stdcall; @@ -1358,7 +1376,7 @@ type // /include/capi/cef_xml_reader_capi.h (cef_xml_reader_t) TCefXmlReader = record - base: TcefBase; + base: TCefBaseRefCounted; move_to_next_node: function(self: PCefXmlReader): Integer; stdcall; close: function(self: PCefXmlReader): Integer; stdcall; has_error: function(self: PCefXmlReader): Integer; stdcall; @@ -1392,7 +1410,7 @@ type // /include/capi/cef_zip_reader_capi.h (cef_zip_reader_t) TCefZipReader = record - base: TCefBase; + base: TCefBaseRefCounted; move_to_first_file: function(self: PCefZipReader): Integer; stdcall; move_to_next_file: function(self: PCefZipReader): Integer; stdcall; move_to_file: function(self: PCefZipReader; const fileName: PCefString; caseSensitive: Integer): Integer; stdcall; @@ -1409,7 +1427,7 @@ type // /include/capi/cef_urlrequest_capi.h (cef_urlrequest_client_t) TCefUrlrequestClient = record - base: TCefBase; + base: TCefBaseRefCounted; on_request_complete: procedure(self: PCefUrlRequestClient; request: PCefUrlRequest); stdcall; on_upload_progress: procedure(self: PCefUrlRequestClient; request: PCefUrlRequest; current, total: Int64); stdcall; on_download_progress: procedure(self: PCefUrlRequestClient; request: PCefUrlRequest; current, total: Int64); stdcall; @@ -1419,7 +1437,7 @@ type // /include/capi/cef_urlrequest_capi.h (cef_urlrequest_t) TCefUrlRequest = record - base: TCefBase; + base: TCefBaseRefCounted; get_request: function(self: PCefUrlRequest): PCefRequest; stdcall; get_client: function(self: PCefUrlRequest): PCefUrlRequestClient; stdcall; get_request_status: function(self: PCefUrlRequest): TCefUrlRequestStatus; stdcall; @@ -1430,25 +1448,25 @@ type // /include/capi/cef_web_plugin_capi.h (cef_web_plugin_info_visitor_t) TCefWebPluginInfoVisitor = record - base: TCefBase; + base: TCefBaseRefCounted; visit: function(self: PCefWebPluginInfoVisitor; info: PCefWebPluginInfo; count, total: Integer): Integer; stdcall; end; // /include/capi/cef_web_plugin_capi.h (cef_web_plugin_unstable_callback_t) TCefWebPluginUnstableCallback = record - base: TCefBase; + base: TCefBaseRefCounted; is_unstable: procedure(self: PCefWebPluginUnstableCallback; const path: PCefString; unstable: Integer); stdcall; end; // /include/capi/cef_web_plugin_capi.h (cef_register_cdm_callback_t) TCefRegisterCDMCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_cdm_registration_complete: procedure(self:PCefRegisterCDMCallback; result: TCefCDMRegistrationError; const error_message: PCefString); stdcall; end; // /include/capi/cef_geolocation_capi.h (cef_get_geolocation_callback_t) TCefGetGeolocationCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_location_update: procedure(self: PCefGetGeolocationCallback; const position: Pcefgeoposition); stdcall; end; @@ -1468,7 +1486,7 @@ type // /include/capi/cef_thread_capi.h (cef_thread_t) TCefThread = record - base: TCefBase; + base: TCefBaseRefCounted; get_task_runner: function(self: PCefThread): PCefTaskRunner; stdcall; get_platform_thread_id: function(self: PCefThread): TCefPlatformThreadId; stdcall; stop: procedure(self: PCefThread); stdcall; @@ -1477,7 +1495,7 @@ type // /include/capi/cef_waitable_event_capi.h (cef_waitable_event_t) TCefWaitableEvent = record - base: TCefBase; + base: TCefBaseRefCounted; reset: procedure(self: PCefWaitableEvent); stdcall; signal: procedure(self: PCefWaitableEvent); stdcall; is_signaled: function(self: PCefWaitableEvent): integer; stdcall; @@ -1487,7 +1505,7 @@ type // /include/capi/cef_task_capi.h (cef_task_runner_t) TCefTaskRunner = record - base: TCefBase; + base: TCefBaseRefCounted; is_same: function(self, that: PCefTaskRunner): Integer; stdcall; belongs_to_current_thread: function(self: PCefTaskRunner): Integer; stdcall; belongs_to_thread: function(self: PCefTaskRunner; threadId: TCefThreadId): Integer; stdcall; @@ -1497,7 +1515,7 @@ type // /include/capi/cef_trace_capi.h (cef_end_tracing_callback_t) TCefEndTracingCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_end_tracing_complete: procedure(self: PCefEndTracingCallback; const tracing_file: PCefString); stdcall; end; @@ -1514,7 +1532,7 @@ type // /include/capi/cef_resource_bundle_capi.h (cef_resource_bundle_t) TCefResourceBundle = record - base: TCefBase; + base: TCefBaseRefCounted; get_localized_string: function(self: PCefResourceBundle; string_id: Integer): PCefStringUserFree; stdcall; get_data_resource: function(self: PCefResourceBundle; resource_id: Integer; out data: Pointer; out data_size: NativeUInt): Integer; stdcall; get_data_resource_for_scale: function(self: PCefResourceBundle; resource_id: Integer; scale_factor: TCefScaleFactor; out data: Pointer; out data_size: NativeUInt): Integer; stdcall; @@ -1522,8 +1540,11 @@ type // /include/capi/cef_menu_model_delegate_capi.h (cef_menu_model_delegate_t) TCefMenuModelDelegate = record - base: TCefBase; + base: TCefBaseRefCounted; execute_command: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel; command_id: Integer; event_flags: TCefEventFlags); stdcall; + mouse_outside_menu: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel; const screen_point: PCefPoint); stdcall; + unhandled_open_submenu: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel; is_rtl: integer); stdcall; + unhandled_close_submenu: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel; is_rtl: integer); stdcall; menu_will_show: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel); stdcall; menu_closed: procedure(self: PCefMenuModelDelegate; menu_model: PCefMenuModel); stdcall; format_label: function(self: PCefMenuModelDelegate; menu_model: PCefMenuModel; label_ : PCefString) : integer; stdcall; @@ -1531,7 +1552,7 @@ type // /include/capi/cef_process_message_capi.h (cef_process_message_t) TCefProcessMessage = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefProcessMessage): Integer; stdcall; is_read_only: function(self: PCefProcessMessage): Integer; stdcall; copy: function(self: PCefProcessMessage): PCefProcessMessage; stdcall; @@ -1541,7 +1562,7 @@ type // /include/capi/cef_render_process_handler_capi.h (cef_render_process_handler_t) TCefRenderProcessHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_render_thread_created: procedure(self: PCefRenderProcessHandler; extra_info: PCefListValue); stdcall; on_web_kit_initialized: procedure(self: PCefRenderProcessHandler); stdcall; on_browser_created: procedure(self: PCefRenderProcessHandler; browser: PCefBrowser); stdcall; @@ -1557,7 +1578,7 @@ type // /include/capi/cef_request_handler_capi.h (cef_request_handler_t) TCefRequestHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_before_browse: function(self: PCefRequestHandler; browser: PCefBrowser; frame: PCefFrame; request: PCefRequest; isRedirect: Integer): Integer; stdcall; on_open_urlfrom_tab: function(self: PCefRequestHandler; browser:PCefBrowser; frame: PCefFrame; const target_url: PCefString; target_disposition: TCefWindowOpenDisposition; user_gesture: Integer): Integer; stdcall; on_before_resource_load: function(self: PCefRequestHandler; browser: PCefBrowser; frame: PCefFrame; request: PCefRequest; callback: PCefRequestCallback): TCefReturnValue; stdcall; @@ -1578,14 +1599,14 @@ type // /include/capi/cef_request_handler_capi.h (cef_request_callback_t) TCefRequestCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefRequestCallback; allow: Integer); stdcall; cancel: procedure(self: PCefRequestCallback); stdcall; end; // /include/capi/cef_resource_handler_capi.h (cef_resource_handler_t) TCefResourceHandler = record - base: TCefBase; + base: TCefBaseRefCounted; process_request: function(self: PCefResourceHandler; request: PCefRequest; callback: PCefCallback): Integer; stdcall; get_response_headers: procedure(self: PCefResourceHandler; response: PCefResponse; response_length: PInt64; redirectUrl: PCefString); stdcall; read_response: function(self: PCefResourceHandler; data_out: Pointer; bytes_to_read: Integer; bytes_read: PInteger; callback: PCefCallback): Integer; stdcall; @@ -1596,7 +1617,7 @@ type // /include/capi/cef_response_capi.h (cef_response_t) TCefResponse = record - base: TCefBase; + base: TCefBaseRefCounted; is_read_only: function(self: PCefResponse): Integer; stdcall; get_error: function(self: PCefResponse): TCefErrorCode; stdcall; set_error: procedure(self: PCefResponse; error: TCefErrorCode); stdcall; @@ -1613,21 +1634,21 @@ type // /include/capi/cef_response_filter_capi.h (cef_response_filter_t) TCefResponseFilter = record - base: TCefBase; + base: TCefBaseRefCounted; init_filter: function(self: PCefResponseFilter): Integer; stdcall; filter: function(self: PCefResponseFilter; data_in: Pointer; data_in_size, data_in_read: NativeUInt; data_out: Pointer; data_out_size, data_out_written: NativeUInt): TCefResponseFilterStatus; stdcall; end; // /include/capi/cef_auth_callback_capi.h (cef_auth_callback_t) TCefAuthCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefAuthCallback; const username, password: PCefString); stdcall; cancel: procedure(self: PCefAuthCallback); stdcall; end; // /include/capi/cef_callback_capi.h (cef_callback_t) TCefCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefCallback); stdcall; cancel: procedure(self: PCefCallback); stdcall; end; @@ -1648,7 +1669,7 @@ type // /include/capi/cef_request_context_capi.h (cef_request_context_t) TCefRequestContext = record - base: TCefBase; + base: TCefBaseRefCounted; is_same: function(self, other: PCefRequestContext): Integer; stdcall; is_sharing_with: function(self, other: PCefRequestContext): Integer; stdcall; is_global: function(self: PCefRequestContext): Integer; stdcall; @@ -1671,20 +1692,20 @@ type // /include/capi/cef_request_context_handler_capi.h (cef_request_context_handler_t) TCefRequestContextHandler = record - base: TCefBase; + base: TCefBaseRefCounted; get_cookie_manager: function(self: PCefRequestContextHandler): PCefCookieManager; stdcall; on_before_plugin_load: function(self: PCefRequestContextHandler; const mime_type, plugin_url : PCefString; is_main_frame : integer; const top_origin_url: PCefString; plugin_info: PCefWebPluginInfo; plugin_policy: PCefPluginPolicy): Integer; stdcall; end; // /include/capi/cef_callback_capi.h (cef_completion_callback_t) TCefCompletionCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_complete: procedure(self: PCefCompletionCallback); stdcall; end; // /include/capi/cef_cookie_capi.h (cef_cookie_manager_t) TCefCookieManager = record - base: TCefBase; + base: TCefBaseRefCounted; set_supported_schemes: procedure(self: PCefCookieManager; schemes: TCefStringList; callback: PCefCompletionCallback); stdcall; visit_all_cookies: function(self: PCefCookieManager; visitor: PCefCookieVisitor): Integer; stdcall; visit_url_cookies: function(self: PCefCookieManager; const url: PCefString; includeHttpOnly: Integer; visitor: PCefCookieVisitor): Integer; stdcall; @@ -1696,19 +1717,19 @@ type // /include/capi/cef_scheme_capi.h (cef_scheme_handler_factory_t) TCefSchemeHandlerFactory = record - base: TCefBase; + base: TCefBaseRefCounted; create: function(self: PCefSchemeHandlerFactory; browser: PCefBrowser; frame: PCefFrame; const scheme_name: PCefString; request: PCefRequest): PCefResourceHandler; stdcall; end; // /include/capi/cef_request_context_capi.h (cef_resolve_callback_t) TCefResolveCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_resolve_completed: procedure(self: PCefResolveCallback; result: TCefErrorCode; resolved_ips: TCefStringList); stdcall; end; // /include/capi/cef_web_plugin_capi.h (cef_web_plugin_info_t) TCefWebPluginInfo = record - base: TCefBase; + base: TCefBaseRefCounted; get_name: function(self: PCefWebPluginInfo): PCefStringUserFree; stdcall; get_path: function(self: PCefWebPluginInfo): PCefStringUserFree; stdcall; get_version: function(self: PCefWebPluginInfo): PCefStringUserFree; stdcall; @@ -1717,37 +1738,37 @@ type // /include/capi/cef_cookie_capi.h (cef_cookie_visitor_t) TCefCookieVisitor = record - base: TCefBase; + base: TCefBaseRefCounted; visit: function(self: PCefCookieVisitor; const cookie: PCefCookie; count, total: Integer; deleteCookie: PInteger): Integer; stdcall; end; // /include/capi/cef_cookie_capi.h (cef_set_cookie_callback_t) TCefSetCookieCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_complete: procedure(self: PCefSetCookieCallback; success: Integer); stdcall; end; // /include/capi/cef_cookie_capi.h (cef_delete_cookies_callback_t) TCefDeleteCookiesCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_complete: procedure(self: PCefDeleteCookiesCallback; num_deleted: Integer); stdcall; end; // /include/capi/cef_browser_capi.h (cef_run_file_dialog_callback_t) TCefRunFileDialogCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_file_dialog_dismissed: procedure(self: PCefRunFileDialogCallback; selected_accept_filter: Integer; file_paths: TCefStringList); stdcall; end; // /include/capi/cef_browser_capi.h (cef_download_image_callback_t) TCefDownloadImageCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_download_image_finished: procedure(self: PCefDownloadImageCallback; const image_url: PCefString; http_status_code: Integer; image: PCefImage); stdcall; end; // /include/capi/cef_image_capi.h (cef_image_t) TCefImage = record - base: TCefBase; + base: TCefBaseRefCounted; is_empty: function(self: PCefImage): Integer; stdcall; is_same: function(self, that: PCefImage): Integer; stdcall; add_bitmap: function(self: PCefImage; scale_factor: Single; pixel_width, pixel_height: Integer; color_type: TCefColorType; alpha_type: TCefAlphaType; pixel_data: Pointer; pixel_data_size: NativeUInt): Integer; stdcall; @@ -1782,19 +1803,19 @@ type // /include/capi/cef_browser_capi.h (cef_pdf_print_callback_t) TCefPdfPrintCallback = record - base: TCefBase; + base: TCefBaseRefCounted; on_pdf_print_finished: procedure(self: PCefPdfPrintCallback; const path: PCefString; ok: Integer); stdcall; end; // /include/capi/cef_browser_capi.h (cef_navigation_entry_visitor_t) TCefNavigationEntryVisitor = record - base: TCefBase; + base: TCefBaseRefCounted; visit: function(self: PCefNavigationEntryVisitor; entry: PCefNavigationEntry; current, index, total: Integer): Integer; stdcall; end; // /include/capi/cef_navigation_entry_capi.h (cef_navigation_entry_t) TCefNavigationEntry = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefNavigationEntry): Integer; stdcall; get_url: function(self: PCefNavigationEntry): PCefStringUserFree; stdcall; get_display_url: function(self: PCefNavigationEntry): PCefStringUserFree; stdcall; @@ -1816,7 +1837,7 @@ type // /include/capi/cef_print_settings_capi.h (cef_print_settings_t) TCefPrintSettings = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefPrintSettings): Integer; stdcall; is_read_only: function(self: PCefPrintSettings): Integer; stdcall; copy: function(self: PCefPrintSettings): PCefPrintSettings; stdcall; @@ -1844,20 +1865,20 @@ type // /include/capi/cef_print_handler_capi.h (cef_print_dialog_callback_t) TCefPrintDialogCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefPrintDialogCallback; settings: PCefPrintSettings); stdcall; cancel: procedure(self: PCefPrintDialogCallback); stdcall; end; // /include/capi/cef_print_handler_capi.h (cef_print_job_callback_t) TCefPrintJobCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefPrintJobCallback); stdcall; end; // /include/capi/cef_drag_data_capi.h (cef_drag_data_t) TCefDragData = record - base: TCefBase; + base: TCefBaseRefCounted; clone: function(self: PCefDragData): PCefDragData; stdcall; is_read_only: function(self: PCefDragData): Integer; stdcall; is_link: function(self: PCefDragData): Integer; stdcall; @@ -1884,7 +1905,7 @@ type // /include/capi/cef_command_line_capi.h (cef_command_line_t) TCefCommandLine = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefCommandLine): Integer; stdcall; is_read_only: function(self: PCefCommandLine): Integer; stdcall; copy: function(self: PCefCommandLine): PCefCommandLine; stdcall; @@ -1909,13 +1930,13 @@ type // /include/capi/cef_scheme_capi.h (cef_scheme_registrar_t) TCefSchemeRegistrar = record - base: TCefBase; - add_custom_scheme: function(self: PCefSchemeRegistrar; const scheme_name: PCefString; is_standard, is_local, is_display_isolated: Integer): Integer; stdcall; + base: TCefBaseScoped; + add_custom_scheme: function(self: PCefSchemeRegistrar; const scheme_name: PCefString; is_standard, is_local, is_display_isolated, is_secure, is_cors_enabled: Integer): Integer; stdcall; end; // /include/capi/cef_values_capi.h (cef_binary_value_t) TCefBinaryValue = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefBinaryValue): Integer; stdcall; is_owned: function(self: PCefBinaryValue): Integer; stdcall; is_same: function(self, that: PCefBinaryValue):Integer; stdcall; @@ -1927,7 +1948,7 @@ type // /include/capi/cef_values_capi.h (cef_value_t) TCefValue = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefValue): Integer; stdcall; is_owned: function(self: PCefValue): Integer; stdcall; is_read_only: function(self: PCefValue): Integer; stdcall; @@ -1954,7 +1975,7 @@ type // /include/capi/cef_values_capi.h (cef_dictionary_value_t) TCefDictionaryValue = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefDictionaryValue): Integer; stdcall; is_owned: function(self: PCefDictionaryValue): Integer; stdcall; is_read_only: function(self: PCefDictionaryValue): Integer; stdcall; @@ -1988,7 +2009,7 @@ type // /include/capi/cef_values_capi.h (cef_list_value_t) TCefListValue = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefListValue): Integer; stdcall; is_owned: function(self: PCefListValue): Integer; stdcall; is_read_only: function(self: PCefListValue): Integer; stdcall; @@ -2021,7 +2042,7 @@ type // /include/capi/cef_string_visitor_capi.h (cef_string_visitor_t) TCefStringVisitor = record - base: TCefBase; + base: TCefBaseRefCounted; visit: procedure(self: PCefStringVisitor; const str: PCefString); stdcall; end; @@ -2029,7 +2050,7 @@ type // /include/capi/cef_request_capi.h (cef_post_data_element_t) TCefPostDataElement = record - base: TCefBase; + base: TCefBaseRefCounted; is_read_only: function(self: PCefPostDataElement): Integer; stdcall; set_to_empty: procedure(self: PCefPostDataElement); stdcall; set_to_file: procedure(self: PCefPostDataElement; const fileName: PCefString); stdcall; @@ -2042,7 +2063,7 @@ type // /include/capi/cef_request_capi.h (cef_post_data_t) TCefPostData = record - base: TCefBase; + base: TCefBaseRefCounted; is_read_only: function(self: PCefPostData):Integer; stdcall; has_excluded_elements: function(self: PCefPostData): Integer; stdcall; get_element_count: function(self: PCefPostData): NativeUInt; stdcall; @@ -2054,7 +2075,7 @@ type // /include/capi/cef_request_capi.h (cef_request_t) TCefRequest = record - base: TCefBase; + base: TCefBaseRefCounted; is_read_only: function(self: PCefRequest): Integer; stdcall; get_url: function(self: PCefRequest): PCefStringUserFree; stdcall; set_url: procedure(self: PCefRequest; const url: PCefString); stdcall; @@ -2079,19 +2100,20 @@ type // /include/capi/cef_task_capi.h (cef_task_t) TCefTask = record - base: TCefBase; + base: TCefBaseRefCounted; execute: procedure(self: PCefTask); stdcall; end; // /include/capi/cef_dom_capi.h (cef_domvisitor_t) TCefDomVisitor = record - base: TCefBase; + base: TCefBaseRefCounted; visit: procedure(self: PCefDomVisitor; document: PCefDomDocument); stdcall; end; // /include/capi/cef_menu_model_capi.h (cef_menu_model_t) TCefMenuModel = record - base: TCefBase; + base: TCefBaseRefCounted; + is_sub_menu: function(self: PCefMenuModel): Integer; stdcall; clear: function(self: PCefMenuModel): Integer; stdcall; get_count: function(self: PCefMenuModel): Integer; stdcall; add_separator: function(self: PCefMenuModel): Integer; stdcall; @@ -2141,11 +2163,17 @@ type remove_accelerator_at: function(self: PCefMenuModel; index: Integer): Integer; stdcall; get_accelerator: function(self: PCefMenuModel; command_id: Integer; key_code, shift_pressed, ctrl_pressed, alt_pressed: PInteger): Integer; stdcall; get_accelerator_at: function(self: PCefMenuModel; index: Integer; key_code, shift_pressed, ctrl_pressed, alt_pressed: PInteger): Integer; stdcall; + set_color: function(self: PCefMenuModel; command_id: Integer; color_type: TCefMenuColorType; color: TCefColor): Integer; stdcall; + set_color_at: function(self: PCefMenuModel; index: Integer; color_type: TCefMenuColorType; color: TCefColor): Integer; stdcall; + get_color: function(self: PCefMenuModel; command_id: Integer; color_type: TCefMenuColorType; color: PCefColor): Integer; stdcall; + get_color_at: function(self: PCefMenuModel; index: Integer; color_type: TCefMenuColorType; color: PCefColor): Integer; stdcall; + set_font_list: function(self: PCefMenuModel; command_id: Integer; const font_list: PCefString): Integer; stdcall; + set_font_list_at: function(self: PCefMenuModel; index: Integer; const font_list: PCefString): Integer; stdcall; end; // /include/capi/cef_context_menu_handler_capi.h (cef_context_menu_params_t) TCefContextMenuParams = record - base: TCefBase; + base: TCefBaseRefCounted; get_xcoord: function(self: PCefContextMenuParams): Integer; stdcall; get_ycoord: function(self: PCefContextMenuParams): Integer; stdcall; get_type_flags: function(self: PCefContextMenuParams): Integer; stdcall; @@ -2171,7 +2199,7 @@ type // /include/capi/cef_download_item_capi.h (cef_download_item_t) TCefDownloadItem = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefDownloadItem): Integer; stdcall; is_in_progress: function(self: PCefDownloadItem): Integer; stdcall; is_complete: function(self: PCefDownloadItem): Integer; stdcall; @@ -2193,13 +2221,13 @@ type // /include/capi/cef_download_handler_capi.h (cef_before_download_callback_t) TCefBeforeDownloadCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cont: procedure(self: PCefBeforeDownloadCallback; const download_path: PCefString; show_dialog: Integer); stdcall; end; // /include/capi/cef_download_handler_capi.h (cef_download_item_callback_t) TCefDownloadItemCallback = record - base: TCefBase; + base: TCefBaseRefCounted; cancel: procedure(self: PCefDownloadItemCallback); stdcall; pause: procedure(self: PCefDownloadItemCallback); stdcall; resume: procedure(self: PCefDownloadItemCallback); stdcall; @@ -2207,7 +2235,7 @@ type // /include/capi/cef_dom_capi.h (cef_domnode_t) TCefDomNode = record - base: TCefBase; + base: TCefBaseRefCounted; get_type: function(self: PCefDomNode): TCefDomNodeType; stdcall; is_text: function(self: PCefDomNode): Integer; stdcall; is_element: function(self: PCefDomNode): Integer; stdcall; @@ -2238,7 +2266,7 @@ type // /include/capi/cef_dom_capi.h (cef_domdocument_t) TCefDomDocument = record - base: TCefBase; + base: TCefBaseRefCounted; get_type: function(self: PCefDomDocument): TCefDomDocumentType; stdcall; get_document: function(self: PCefDomDocument): PCefDomNode; stdcall; get_body: function(self: PCefDomDocument): PCefDomNode; stdcall; @@ -2259,13 +2287,13 @@ type // /include/capi/cef_v8_capi.h (cef_v8handler_t) TCefv8Handler = record - base: TCefBase; + base: TCefBaseRefCounted; execute: function(self: PCefv8Handler; const name: PCefString; obj: PCefv8Value; argumentsCount: NativeUInt; const arguments: PPCefV8Value; var retval: PCefV8Value; var exception: TCefString): Integer; stdcall; end; // /include/capi/cef_v8_capi.h (cef_v8exception_t) TCefV8Exception = record - base: TCefBase; + base: TCefBaseRefCounted; get_message: function(self: PCefV8Exception): PCefStringUserFree; stdcall; get_source_line: function(self: PCefV8Exception): PCefStringUserFree; stdcall; get_script_resource_name: function(self: PCefV8Exception): PCefStringUserFree; stdcall; @@ -2278,7 +2306,7 @@ type // /include/capi/cef_v8_capi.h (cef_v8value_t) TCefv8Value = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefv8Value): Integer; stdcall; is_undefined: function(self: PCefv8Value): Integer; stdcall; is_null: function(self: PCefv8Value): Integer; stdcall; @@ -2314,8 +2342,8 @@ type set_value_byindex: function(self: PCefv8Value; index: Integer; value: PCefv8Value): Integer; stdcall; set_value_byaccessor: function(self: PCefv8Value; const key: PCefString; settings: Integer; attribute: Integer): Integer; stdcall; get_keys: function(self: PCefv8Value; keys: TCefStringList): Integer; stdcall; - set_user_data: function(self: PCefv8Value; user_data: PCefBase): Integer; stdcall; - get_user_data: function(self: PCefv8Value): PCefBase; stdcall; + set_user_data: function(self: PCefv8Value; user_data: PCefBaseRefCounted): Integer; stdcall; + get_user_data: function(self: PCefv8Value): PCefBaseRefCounted; stdcall; get_externally_allocated_memory: function(self: PCefv8Value): Integer; stdcall; adjust_externally_allocated_memory: function(self: PCefv8Value; change_in_bytes: Integer): Integer; stdcall; get_array_length: function(self: PCefv8Value): Integer; stdcall; @@ -2327,7 +2355,7 @@ type // /include/capi/cef_v8_capi.h (cef_v8context_t) TCefV8Context = record - base: TCefBase; + base: TCefBaseRefCounted; get_task_runner: function(self: PCefv8Context): PCefTask; stdcall; is_valid: function(self: PCefv8Context): Integer; stdcall; get_browser: function(self: PCefv8Context): PCefBrowser; stdcall; @@ -2341,7 +2369,7 @@ type // /include/capi/cef_v8_capi.h (cef_v8interceptor_t) TCefV8Interceptor = record - base : TCefBase; + base : TCefBaseRefCounted; get_byname : function(self: PCefV8Interceptor; const name: PCefString; const obj: PCefV8Value; out retval: PCefv8Value; exception: PCefString): integer; stdcall; get_byindex : function(self: PCefV8Interceptor; index: integer; const obj: PCefV8Value; out retval: PCefv8Value; exception: PCefString): integer; stdcall; set_byname : function(self: PCefV8Interceptor; const name: PCefString; const obj: PCefV8Value; value: PCefv8Value; exception: PCefString): integer; stdcall; @@ -2350,14 +2378,14 @@ type // /include/capi/cef_v8_capi.h (cef_v8accessor_t) TCefV8Accessor = record - base: TCefBase; + base: TCefBaseRefCounted; get: function(self: PCefV8Accessor; const name: PCefString; obj: PCefv8Value; out retval: PCefv8Value; exception: PCefString): Integer; stdcall; put: function(self: PCefV8Accessor; const name: PCefString; obj: PCefv8Value; value: PCefv8Value; exception: PCefString): Integer; stdcall; end; // /include/capi/cef_frame_capi.h (cef_frame_t) TCefFrame = record - base: TCefBase; + base: TCefBaseRefCounted; is_valid: function(self: PCefFrame): Integer; stdcall; undo: procedure(self: PCefFrame); stdcall; redo: procedure(self: PCefFrame); stdcall; @@ -2386,7 +2414,7 @@ type // /include/capi/cef_context_menu_handler_capi.h (cef_context_menu_handler_t) TCefContextMenuHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_before_context_menu: procedure(self: PCefContextMenuHandler; browser: PCefBrowser; frame: PCefFrame; params: PCefContextMenuParams; model: PCefMenuModel); stdcall; run_context_menu: function(self: PCefContextMenuHandler; browser: PCefBrowser; frame: PCefFrame; params: PCefContextMenuParams; model: PCefMenuModel; callback: PCefRunContextMenuCallback): Integer; stdcall; on_context_menu_command: function(self: PCefContextMenuHandler; browser: PCefBrowser; frame: PCefFrame; params: PCefContextMenuParams; command_id: Integer; event_flags: Integer): Integer; stdcall; @@ -2395,7 +2423,7 @@ type // /include/capi/cef_client_capi.h (cef_client_t) TCefClient = record - base: TCefBase; + base: TCefBaseRefCounted; get_context_menu_handler: function(self: PCefClient): PCefContextMenuHandler; stdcall; get_dialog_handler: function(self: PCefClient): PCefDialogHandler; stdcall; get_display_handler: function(self: PCefClient): PCefDisplayHandler; stdcall; @@ -2415,7 +2443,7 @@ type // /include/capi/cef_browser_capi.h (cef_browser_host_t) TCefBrowserHost = record - base: TCefBase; + base: TCefBaseRefCounted; get_browser: function(self: PCefBrowserHost): PCefBrowser; stdcall; close_browser: procedure(self: PCefBrowserHost; force_close: Integer); stdcall; try_close_browser: function(self: PCefBrowserHost): Integer; stdcall; @@ -2471,7 +2499,7 @@ type // /include/capi/cef_browser_capi.h (cef_browser_t) TCefBrowser = record - base: TCefBase; + base: TCefBaseRefCounted; get_host: function(self: PCefBrowser): PCefBrowserHost; stdcall; can_go_back: function(self: PCefBrowser): Integer; stdcall; go_back: procedure(self: PCefBrowser); stdcall; @@ -2497,7 +2525,7 @@ type // /include/capi/cef_print_handler_capi.h (cef_print_handler_t) TCefPrintHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_print_start: procedure(self: PCefPrintHandler; browser: PCefBrowser); stdcall; on_print_settings: procedure(self: PCefPrintHandler; settings: PCefPrintSettings; get_defaults: Integer); stdcall; on_print_dialog: function(self: PCefPrintHandler; has_selection: Integer; callback: PCefPrintDialogCallback): Integer; stdcall; @@ -2508,7 +2536,7 @@ type // /include/capi/cef_resource_bundle_handler_capi.h (cef_resource_bundle_handler_t) TCefResourceBundleHandler = record - base: TCefBase; + base: TCefBaseRefCounted; get_localized_string: function(self: PCefResourceBundleHandler; string_id: Integer; string_val: PCefString): Integer; stdcall; get_data_resource: function(self: PCefResourceBundleHandler; resource_id: Integer; var data: Pointer; var data_size: NativeUInt): Integer; stdcall; get_data_resource_for_scale: function(self: PCefResourceBundleHandler; resource_id: Integer; scale_factor: TCefScaleFactor; out data: Pointer; data_size: NativeUInt): Integer; stdcall; @@ -2516,7 +2544,7 @@ type // /include/capi/cef_browser_process_handler_capi.h (cef_browser_process_handler_t) TCefBrowserProcessHandler = record - base: TCefBase; + base: TCefBaseRefCounted; on_context_initialized: procedure(self: PCefBrowserProcessHandler); stdcall; on_before_child_process_launch: procedure(self: PCefBrowserProcessHandler; command_line: PCefCommandLine); stdcall; on_render_process_thread_created: procedure(self: PCefBrowserProcessHandler; extra_info: PCefListValue); stdcall; @@ -2526,7 +2554,7 @@ type // /include/capi/cef_app_capi.h (cef_app_t) TCefApp = record - base: TCefBase; + base: TCefBaseRefCounted; on_before_command_line_processing: procedure(self: PCefApp; const process_type: PCefString; command_line: PCefCommandLine); stdcall; on_register_custom_schemes: procedure(self: PCefApp; registrar: PCefSchemeRegistrar); stdcall; get_resource_bundle_handler: function(self: PCefApp): PCefResourceBundleHandler; stdcall; diff --git a/source/uCEFUrlRequest.pas b/source/uCEFUrlRequest.pas index e3dab53c..05ac6915 100644 --- a/source/uCEFUrlRequest.pas +++ b/source/uCEFUrlRequest.pas @@ -47,10 +47,10 @@ unit uCEFUrlRequest; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefUrlRequestRef = class(TCefBaseRef, ICefUrlRequest) + TCefUrlRequestRef = class(TCefBaseRefCountedRef, ICefUrlRequest) protected function GetRequest: ICefRequest; function GetRequestStatus: TCefUrlRequestStatus; diff --git a/source/uCEFUrlrequestClient.pas b/source/uCEFUrlrequestClient.pas index e17c170d..9509ace8 100644 --- a/source/uCEFUrlrequestClient.pas +++ b/source/uCEFUrlrequestClient.pas @@ -47,10 +47,10 @@ unit uCEFUrlrequestClient; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefUrlrequestClientOwn = class(TCefBaseOwn, ICefUrlrequestClient) + TCefUrlrequestClientOwn = class(TCefBaseRefCountedOwn, ICefUrlrequestClient) protected procedure OnRequestComplete(const request: ICefUrlRequest); virtual; procedure OnUploadProgress(const request: ICefUrlRequest; current, total: Int64); virtual; diff --git a/source/uCEFV8Exception.pas b/source/uCEFV8Exception.pas index bf099a8a..b80ed39f 100644 --- a/source/uCEFV8Exception.pas +++ b/source/uCEFV8Exception.pas @@ -47,10 +47,10 @@ unit uCEFV8Exception; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefV8ExceptionRef = class(TCefBaseRef, ICefV8Exception) + TCefV8ExceptionRef = class(TCefBaseRefCountedRef, ICefV8Exception) protected function GetMessage: ustring; function GetSourceLine: ustring; diff --git a/source/uCEFValue.pas b/source/uCEFValue.pas index 9c2c59ad..bdecb939 100644 --- a/source/uCEFValue.pas +++ b/source/uCEFValue.pas @@ -47,10 +47,10 @@ unit uCEFValue; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefValueRef = class(TCefBaseRef, ICefValue) + TCefValueRef = class(TCefBaseRefCountedRef, ICefValue) protected function IsValid: Boolean; function IsOwned: Boolean; diff --git a/source/uCEFWaitableEvent.pas b/source/uCEFWaitableEvent.pas index afd51d7f..164e0883 100644 --- a/source/uCEFWaitableEvent.pas +++ b/source/uCEFWaitableEvent.pas @@ -47,10 +47,10 @@ unit uCEFWaitableEvent; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefWaitableEventRef = class(TCefBaseRef, ICefWaitableEvent) + TCefWaitableEventRef = class(TCefBaseRefCountedRef, ICefWaitableEvent) protected procedure Reset; procedure Signal; diff --git a/source/uCEFWebPluginInfo.pas b/source/uCEFWebPluginInfo.pas index 88aaa4ff..2bf0c279 100644 --- a/source/uCEFWebPluginInfo.pas +++ b/source/uCEFWebPluginInfo.pas @@ -47,10 +47,10 @@ unit uCEFWebPluginInfo; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefWebPluginInfoRef = class(TCefBaseRef, ICefWebPluginInfo) + TCefWebPluginInfoRef = class(TCefBaseRefCountedRef, ICefWebPluginInfo) protected function GetName: ustring; function GetPath: ustring; diff --git a/source/uCEFWebPluginInfoVisitor.pas b/source/uCEFWebPluginInfoVisitor.pas index 93e0390f..fa5a9378 100644 --- a/source/uCEFWebPluginInfoVisitor.pas +++ b/source/uCEFWebPluginInfoVisitor.pas @@ -47,10 +47,10 @@ unit uCEFWebPluginInfoVisitor; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefWebPluginInfoVisitorOwn = class(TCefBaseOwn, ICefWebPluginInfoVisitor) + TCefWebPluginInfoVisitorOwn = class(TCefBaseRefCountedOwn, ICefWebPluginInfoVisitor) protected function Visit(const info: ICefWebPluginInfo; count, total: Integer): Boolean; virtual; diff --git a/source/uCEFWebPluginUnstableCallback.pas b/source/uCEFWebPluginUnstableCallback.pas index e04f0cde..bb6a8d04 100644 --- a/source/uCEFWebPluginUnstableCallback.pas +++ b/source/uCEFWebPluginUnstableCallback.pas @@ -47,12 +47,12 @@ unit uCEFWebPluginUnstableCallback; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type TCefWebPluginIsUnstableProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const path: ustring; unstable: Boolean); - TCefWebPluginUnstableCallbackOwn = class(TCefBaseOwn, ICefWebPluginUnstableCallback) + TCefWebPluginUnstableCallbackOwn = class(TCefBaseRefCountedOwn, ICefWebPluginUnstableCallback) protected procedure IsUnstable(const path: ustring; unstable: Boolean); virtual; diff --git a/source/uCEFWriteHandler.pas b/source/uCEFWriteHandler.pas index 674504d4..f5be8e23 100644 --- a/source/uCEFWriteHandler.pas +++ b/source/uCEFWriteHandler.pas @@ -47,10 +47,10 @@ unit uCEFWriteHandler; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefWriteHandlerOwn = class(TCefBaseOwn, ICefWriteHandler) + TCefWriteHandlerOwn = class(TCefBaseRefCountedOwn, ICefWriteHandler) protected function Write(const ptr: Pointer; size, n: NativeUInt): NativeUInt; virtual; function Seek(offset: Int64; whence: Integer): Integer; virtual; diff --git a/source/uCEFX509CertPrincipal.pas b/source/uCEFX509CertPrincipal.pas index 85131f27..d76197be 100644 --- a/source/uCEFX509CertPrincipal.pas +++ b/source/uCEFX509CertPrincipal.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefX509CertPrincipalRef = class(TCefBaseRef, ICefX509CertPrincipal) + TCefX509CertPrincipalRef = class(TCefBaseRefCountedRef, ICefX509CertPrincipal) protected function GetDisplayName: ustring; function GetCommonName: ustring; diff --git a/source/uCEFX509Certificate.pas b/source/uCEFX509Certificate.pas index ba44a075..8123a3f4 100644 --- a/source/uCEFX509Certificate.pas +++ b/source/uCEFX509Certificate.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCEFX509CertificateRef = class(TCefBaseRef, ICefX509Certificate) + TCEFX509CertificateRef = class(TCefBaseRefCountedRef, ICefX509Certificate) protected function GetSubject: ICefX509CertPrincipal; function GetIssuer: ICefX509CertPrincipal; diff --git a/source/uCEFXmlReader.pas b/source/uCEFXmlReader.pas index 6370f95e..0139201a 100644 --- a/source/uCEFXmlReader.pas +++ b/source/uCEFXmlReader.pas @@ -47,10 +47,10 @@ unit uCEFXmlReader; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefXmlReaderRef = class(TCefBaseRef, ICefXmlReader) + TCefXmlReaderRef = class(TCefBaseRefCountedRef, ICefXmlReader) protected function MoveToNextNode: Boolean; function Close: Boolean; diff --git a/source/uCEFZipReader.pas b/source/uCEFZipReader.pas index 480cf026..32ba812e 100644 --- a/source/uCEFZipReader.pas +++ b/source/uCEFZipReader.pas @@ -47,10 +47,10 @@ unit uCEFZipReader; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefZipReaderRef = class(TCefBaseRef, ICefZipReader) + TCefZipReaderRef = class(TCefBaseRefCountedRef, ICefZipReader) protected function MoveToFirstFile: Boolean; function MoveToNextFile: Boolean; diff --git a/source/uCEFv8Accessor.pas b/source/uCEFv8Accessor.pas index ba659dec..ee28d75e 100644 --- a/source/uCEFv8Accessor.pas +++ b/source/uCEFv8Accessor.pas @@ -47,10 +47,10 @@ unit uCEFv8Accessor; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes, uCEFv8Types; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFv8Types; type - TCefV8AccessorOwn = class(TCefBaseOwn, ICefV8Accessor) + TCefV8AccessorOwn = class(TCefBaseRefCountedOwn, ICefV8Accessor) protected function Get(const name: ustring; const obj: ICefv8Value; out value: ICefv8Value; const exception: ustring): Boolean; virtual; function Put(const name: ustring; const obj, value: ICefv8Value; const exception: ustring): Boolean; virtual; diff --git a/source/uCEFv8Context.pas b/source/uCEFv8Context.pas index d0274343..26366f22 100644 --- a/source/uCEFv8Context.pas +++ b/source/uCEFv8Context.pas @@ -47,10 +47,10 @@ unit uCEFv8Context; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefv8ContextRef = class(TCefBaseRef, ICefv8Context) + TCefv8ContextRef = class(TCefBaseRefCountedRef, ICefv8Context) protected function GetTaskRunner: ICefTaskRunner; function IsValid: Boolean; diff --git a/source/uCEFv8Handler.pas b/source/uCEFv8Handler.pas index 1e629a59..6ee09365 100644 --- a/source/uCEFv8Handler.pas +++ b/source/uCEFv8Handler.pas @@ -56,10 +56,10 @@ uses {$ENDIF} TypInfo, Variants, SysUtils, Classes, Math, SyncObjs, Windows, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefv8HandlerRef = class(TCefBaseRef, ICefv8Handler) + TCefv8HandlerRef = class(TCefBaseRefCountedRef, ICefv8Handler) protected function Execute(const name: ustring; const obj: ICefv8Value; const arguments: TCefv8ValueArray; var retval: ICefv8Value; var exception: ustring): Boolean; @@ -67,7 +67,7 @@ type class function UnWrap(data: Pointer): ICefv8Handler; end; - TCefv8HandlerOwn = class(TCefBaseOwn, ICefv8Handler) + TCefv8HandlerOwn = class(TCefBaseRefCountedOwn, ICefv8Handler) protected function Execute(const name: ustring; const obj: ICefv8Value; const arguments: TCefv8ValueArray; var retval: ICefv8Value; var exception: ustring): Boolean; virtual; diff --git a/source/uCEFv8Interceptor.pas b/source/uCEFv8Interceptor.pas index 067c5204..6e473327 100644 --- a/source/uCEFv8Interceptor.pas +++ b/source/uCEFv8Interceptor.pas @@ -47,10 +47,10 @@ unit uCEFv8Interceptor; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes, uCEFv8Types; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFv8Types; type - TCefV8InterceptorOwn = class(TCefBaseOwn, ICefV8Interceptor) + TCefV8InterceptorOwn = class(TCefBaseRefCountedOwn, ICefV8Interceptor) protected function GetByName(const name: ustring; const obj: ICefv8Value; out retval: ICefv8Value; const exception: ustring): boolean; virtual; function GetByIndex(index: integer; const obj: ICefv8Value; out retval: ICefv8Value; const exception: ustring): boolean; virtual; diff --git a/source/uCEFv8StackFrame.pas b/source/uCEFv8StackFrame.pas index b94c13d7..abd0bab9 100644 --- a/source/uCEFv8StackFrame.pas +++ b/source/uCEFv8StackFrame.pas @@ -47,10 +47,10 @@ unit uCEFv8StackFrame; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefV8StackFrameRef = class(TCefBaseRef, ICefV8StackFrame) + TCefV8StackFrameRef = class(TCefBaseRefCountedRef, ICefV8StackFrame) protected function IsValid: Boolean; function GetScriptName: ustring; diff --git a/source/uCEFv8StackTrace.pas b/source/uCEFv8StackTrace.pas index e6eb92aa..0e88ff25 100644 --- a/source/uCEFv8StackTrace.pas +++ b/source/uCEFv8StackTrace.pas @@ -47,10 +47,10 @@ unit uCEFv8StackTrace; interface uses - uCEFBase, uCEFInterfaces, uCEFTypes; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; type - TCefV8StackTraceRef = class(TCefBaseRef, ICefV8StackTrace) + TCefV8StackTraceRef = class(TCefBaseRefCountedRef, ICefV8StackTrace) protected function IsValid: Boolean; function GetFrameCount: Integer; diff --git a/source/uCEFv8Value.pas b/source/uCEFv8Value.pas index 6ac31bd9..fb747922 100644 --- a/source/uCEFv8Value.pas +++ b/source/uCEFv8Value.pas @@ -52,10 +52,10 @@ uses {$ELSE} Classes, {$ENDIF} - uCEFBase, uCEFInterfaces, uCEFTypes, uCEFv8Types; + uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes, uCEFv8Types; type - TCefv8ValueRef = class(TCefBaseRef, ICefv8Value) + TCefv8ValueRef = class(TCefBaseRefCountedRef, ICefv8Value) protected function IsValid: Boolean; function IsUndefined: Boolean;