diff --git a/demos/MiniBrowser/MiniBrowser.dpr b/demos/MiniBrowser/MiniBrowser.dpr index 10605a0a..c61923ea 100644 --- a/demos/MiniBrowser/MiniBrowser.dpr +++ b/demos/MiniBrowser/MiniBrowser.dpr @@ -63,14 +63,14 @@ begin GlobalCEFApp := TCefApplication.Create; // In case you want to use custom directories for the CEF3 binaries, cache, cookies and user data. -{ + { GlobalCEFApp.FrameworkDirPath := 'cef'; GlobalCEFApp.ResourcesDirPath := 'cef'; GlobalCEFApp.LocalesDirPath := 'cef\locales'; GlobalCEFApp.cache := 'cef\cache'; GlobalCEFApp.cookies := 'cef\cookies'; GlobalCEFApp.UserDataPath := 'cef\User Data'; -} + } // Examples of command line switches. // ********************************** diff --git a/demos/MiniBrowser/MiniBrowser.dproj.local b/demos/MiniBrowser/MiniBrowser.dproj.local index e6f85ead..5c10c0d0 100644 --- a/demos/MiniBrowser/MiniBrowser.dproj.local +++ b/demos/MiniBrowser/MiniBrowser.dproj.local @@ -2,20 +2,20 @@ 2017/02/11 10:15:32.000.980,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas - 2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas - 2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.dfm - 2017/02/11 10:16:37.000.392,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj + 2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas + 2017/02/11 10:16:27.000.174,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm + 2017/02/11 10:16:37.000.392,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Project1.dproj 2017/02/11 17:10:26.000.471,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas - 2017/02/11 17:11:01.000.244,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas + 2017/02/11 17:11:01.000.244,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas 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.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.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm - 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\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.dfm + 2017/03/15 12:40:51.000.061,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uPreferences.pas 2017/07/14 11:54:07.000.560,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas - 2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.dfm - 2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.pas + 2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas + 2017/07/14 11:57:42.000.778,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.dfm 2017/08/12 11:00:30.000.928,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas= 2017/08/12 11:18:47.000.783,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uSimpleTextViewer.pas= 2017/08/12 12:01:56.000.772,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas= diff --git a/demos/MiniBrowser/MiniBrowser.dsk b/demos/MiniBrowser/MiniBrowser.dsk index 5cb579fa..efed768a 100644 --- a/demos/MiniBrowser/MiniBrowser.dsk +++ b/demos/MiniBrowser/MiniBrowser.dsk @@ -1,34 +1,34 @@ [Closed Files] -File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,2170,74,2204,0,0,, -File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFStringVisitor.pas',0,1,128,1,131,0,0,, -File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas',0,1,193,1,204,0,0,, -File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,183,54,225,0,0,, -File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\FastMM4\FastMM4.pas',0,1,9585,88,9618,0,0,, -File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,1712,23,1740,0,0,, -File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFPDFPrintCallback.pas',0,1,79,1,88,0,0,, -File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,70,37,58,0,0,, -File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFWindowParent.pas',0,1,65,27,66,0,0,, -File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,246,22,279,0,0,, +File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,1742,49,1766,0,0,, +File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,246,14,270,0,0,, +File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBrowser.pas',0,1,219,1,250,0,0,, +File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFStringVisitor.pas',0,1,128,1,131,0,0,, +File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas',0,1,193,1,204,0,0,, +File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,183,54,225,0,0,, +File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\FastMM4\FastMM4.pas',0,1,9585,88,9618,0,0,, +File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,1712,23,1740,0,0,, +File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFPDFPrintCallback.pas',0,1,79,1,88,0,0,, +File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,70,37,58,0,0,, [Modules] -Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas -Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj -Module2=default.htm +Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj +Module1=default.htm +Module2=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas Count=3 EditWindowCount=1 -[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas] -ModuleType=TSourceModule - [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj] ModuleType=TBaseProject [default.htm] ModuleType=TURLModule +[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas] +ModuleType=TSourceModule + [EditWindow0] ViewCount=3 -CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas +CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr View0=0 View1=1 View2=2 @@ -48,17 +48,18 @@ ClientHeight=9417 DockedToMainForm=1 BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 -LeftPanelSize=0 +LeftPanelSize=1898 +LeftPanelClients=PropertyInspector,DockSite3 +LeftPanelData=000008000101000000001615000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000471D00001100000050726F7065727479496E73706563746F72FFFFFFFF RightPanelSize=2000 RightPanelClients=DockSite2,DockSite4 -RightPanelData=0000080001010100000009000000446F636B5369746534161500000000000001D0070000000000000100000000471D000009000000446F636B5369746532FFFFFFFF +RightPanelData=00000800010100000000161500000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000471D000009000000446F636B5369746534FFFFFFFF BottomPanelSize=1551 BottomPanelClients=DockSite1,MessageView -BottomPanelData=000008000102000000003B36000000000000020F0600000000000001000000001D1B000009000000446F636B536974653101000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF -TabDockLeftClients=PropertyInspector=0,DockSite3=1 [View0] CustomEditViewType=TWelcomePageView @@ -67,10 +68,10 @@ WelcomePageURL=bds:/default.htm [View1] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr -CursorX=2 +CursorX=3 CursorY=66 -TopLine=52 -LeftCol=1 +TopLine=43 +LeftCol=2 Elisions= Bookmarks= EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr @@ -78,12 +79,12 @@ EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\d [View2] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas -CursorX=25 -CursorY=560 -TopLine=543 +CursorX=67 +CursorY=580 +TopLine=569 LeftCol=1 Elisions= -Bookmarks= +Bookmarks={1,590,1} EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas [UndockedDesigner] @@ -151,11 +152,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=7265 +Height=4305 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7265 +ClientHeight=4305 TBDockHeight=5897 LRDockWidth=2352 Dockable=1 @@ -167,13 +168,13 @@ Create=1 Visible=1 Docked=1 State=0 -Left=640 +Left=0 Top=18 -Width=5000 +Width=10000 Height=1401 MaxLeft=-1 MaxTop=-1 -ClientWidth=5000 +ClientWidth=10000 ClientHeight=1401 TBDockHeight=1401 LRDockWidth=2773 @@ -189,11 +190,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=7220 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7220 +ClientHeight=2713 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -243,8 +244,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-121 +Top=-70 Width=1844 Height=3139 MaxLeft=-1 @@ -297,18 +298,18 @@ StayOnTop=0 [PropertyInspector] PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=357 Width=1898 -Height=7220 +Height=3744 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7220 -TBDockHeight=7220 +ClientHeight=3744 +TBDockHeight=7164 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -358,8 +359,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-1024 -Top=265 +Left=-1152 +Top=247 Width=273 Height=359 MaxLeft=-1 @@ -584,11 +585,11 @@ Docked=1 State=0 Left=0 Top=0 -Width=4969 +Width=3820 Height=1121 MaxLeft=-1 MaxTop=-1 -ClientWidth=4969 +ClientWidth=3820 ClientHeight=1121 TBDockHeight=1547 LRDockWidth=8742 @@ -610,12 +611,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1773 -Height=6794 +Width=1898 +Height=3554 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6794 +ClientWidth=1898 +ClientHeight=3554 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -691,23 +692,23 @@ HostDockSite=DockBottomPanel DockSiteType=1 PercentageSizes=1 Create=1 -Visible=1 +Visible=0 Docked=1 State=0 Left=0 Top=18 -Width=4969 +Width=3820 Height=1401 MaxLeft=-1 MaxTop=-1 -ClientWidth=4969 +ClientWidth=3820 ClientHeight=1401 TBDockHeight=1401 LRDockWidth=3820 Dockable=1 StayOnTop=0 TabPosition=1 -ActiveTabID=BreakpointWindow +ActiveTabID=DebugLogView TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow [DockSite2] @@ -721,12 +722,12 @@ State=0 Left=0 Top=18 Width=2000 -Height=7545 +Height=4585 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7545 -TBDockHeight=7220 +ClientHeight=4585 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 @@ -735,22 +736,22 @@ 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=18 Width=1898 -Height=7220 +Height=3554 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6794 -TBDockHeight=7220 +ClientWidth=1898 +ClientHeight=3554 +TBDockHeight=7164 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -763,18 +764,18 @@ HostDockSite=DockRightPanel DockSiteType=1 PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 Left=0 -Top=0 +Top=449 Width=2000 -Height=7220 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=7220 -TBDockHeight=7220 +ClientHeight=2713 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 diff --git a/demos/MiniBrowser/MiniBrowser.identcache b/demos/MiniBrowser/MiniBrowser.identcache index 2e37c38f..86b38cba 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 3635e0db..b59826b5 100644 --- a/demos/MiniBrowser/MiniBrowser.stat +++ b/demos/MiniBrowser/MiniBrowser.stat @@ -1,10 +1,10 @@ [Stats] -EditorSecs=47870 -DesignerSecs=2448 -InspectorSecs=1794 -CompileSecs=2680883 -OtherSecs=7675 +EditorSecs=48911 +DesignerSecs=2452 +InspectorSecs=1802 +CompileSecs=2709478 +OtherSecs=7731 StartTime=11/02/2017 10:51:15 RealKeys=0 EffectiveKeys=0 -DebugSecs=40274 +DebugSecs=40779 diff --git a/demos/MiniBrowser/uMiniBrowser.dfm b/demos/MiniBrowser/uMiniBrowser.dfm index ffe0c388..f0bdf9a5 100644 --- a/demos/MiniBrowser/uMiniBrowser.dfm +++ b/demos/MiniBrowser/uMiniBrowser.dfm @@ -143,7 +143,10 @@ object MiniBrowserFrm: TMiniBrowserFrm 'https://html5demos.com/drag/' 'https://developers.google.com/maps/documentation/javascript/exam' + - 'ples/streetview-embed?hl=fr') + 'ples/streetview-embed?hl=fr' + + 'https://www.w3schools.com/Tags/tryit.asp?filename=tryhtml_iframe' + + '_name') end end object ConfigPnl: TPanel diff --git a/demos/MiniBrowser/uMiniBrowser.pas b/demos/MiniBrowser/uMiniBrowser.pas index 368b2a24..adf1b48c 100644 --- a/demos/MiniBrowser/uMiniBrowser.pas +++ b/demos/MiniBrowser/uMiniBrowser.pas @@ -57,15 +57,19 @@ const MINIBROWSER_HIDEDEVTOOLS = WM_APP + $102; MINIBROWSER_COPYHTML = WM_APP + $103; MINIBROWSER_SHOWRESPONSE = WM_APP + $104; + MINIBROWSER_COPYFRAMEIDS = WM_APP + $105; + MINIBROWSER_COPYFRAMENAMES = WM_APP + $106; MINIBROWSER_HOMEPAGE = 'https://www.google.com'; - MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS = MENU_ID_USER_FIRST + 1; - MINIBROWSER_CONTEXTMENU_HIDEDEVTOOLS = MENU_ID_USER_FIRST + 2; - MINIBROWSER_CONTEXTMENU_COPYHTML = MENU_ID_USER_FIRST + 5; - MINIBROWSER_CONTEXTMENU_JSWRITEDOC = MENU_ID_USER_FIRST + 7; - MINIBROWSER_CONTEXTMENU_JSPRINTDOC = MENU_ID_USER_FIRST + 8; - MINIBROWSER_CONTEXTMENU_SHOWRESPONSE = MENU_ID_USER_FIRST + 9; + MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS = MENU_ID_USER_FIRST + 1; + MINIBROWSER_CONTEXTMENU_HIDEDEVTOOLS = MENU_ID_USER_FIRST + 2; + MINIBROWSER_CONTEXTMENU_COPYHTML = MENU_ID_USER_FIRST + 3; + MINIBROWSER_CONTEXTMENU_JSWRITEDOC = MENU_ID_USER_FIRST + 4; + MINIBROWSER_CONTEXTMENU_JSPRINTDOC = MENU_ID_USER_FIRST + 5; + MINIBROWSER_CONTEXTMENU_SHOWRESPONSE = MENU_ID_USER_FIRST + 6; + MINIBROWSER_CONTEXTMENU_COPYFRAMEIDS = MENU_ID_USER_FIRST + 7; + MINIBROWSER_CONTEXTMENU_COPYFRAMENAMES = MENU_ID_USER_FIRST + 8; type TMiniBrowserFrm = class(TForm) @@ -172,6 +176,8 @@ type procedure ShowDevToolsMsg(var aMessage : TMessage); message MINIBROWSER_SHOWDEVTOOLS; procedure HideDevToolsMsg(var aMessage : TMessage); message MINIBROWSER_HIDEDEVTOOLS; procedure CopyHTMLMsg(var aMessage : TMessage); message MINIBROWSER_COPYHTML; + procedure CopyFramesIDsMsg(var aMessage : TMessage); message MINIBROWSER_COPYFRAMEIDS; + procedure CopyFramesNamesMsg(var aMessage : TMessage); message MINIBROWSER_COPYFRAMENAMES; procedure ShowResponseMsg(var aMessage : TMessage); message MINIBROWSER_SHOWRESPONSE; procedure WMMove(var aMessage : TWMMove); message WM_MOVE; procedure WMMoving(var aMessage : TMessage); message WM_MOVING; @@ -233,6 +239,9 @@ procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject; begin model.AddSeparator; model.AddItem(MINIBROWSER_CONTEXTMENU_COPYHTML, 'Copy HTML to clipboard'); + model.AddItem(MINIBROWSER_CONTEXTMENU_COPYFRAMEIDS, 'Copy HTML frame identifiers to clipboard'); + model.AddItem(MINIBROWSER_CONTEXTMENU_COPYFRAMENAMES, 'Copy HTML frame names to clipboard'); + model.AddSeparator; model.AddItem(MINIBROWSER_CONTEXTMENU_JSWRITEDOC, 'Modify HTML document'); model.AddItem(MINIBROWSER_CONTEXTMENU_JSPRINTDOC, 'Print using Javascript'); model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWRESPONSE, 'Show last server response'); @@ -265,6 +274,12 @@ begin MINIBROWSER_CONTEXTMENU_COPYHTML : PostMessage(Handle, MINIBROWSER_COPYHTML, 0, 0); + MINIBROWSER_CONTEXTMENU_COPYFRAMEIDS : + PostMessage(Handle, MINIBROWSER_COPYFRAMEIDS, 0, 0); + + MINIBROWSER_CONTEXTMENU_COPYFRAMENAMES : + PostMessage(Handle, MINIBROWSER_COPYFRAMENAMES, 0, 0); + MINIBROWSER_CONTEXTMENU_SHOWRESPONSE : PostMessage(Handle, MINIBROWSER_SHOWRESPONSE, 0, 0); @@ -566,6 +581,43 @@ begin Chromium1.RetrieveHTML; end; +procedure TMiniBrowserFrm.CopyFramesIDsMsg(var aMessage : TMessage); +var + i : NativeUInt; + TempCount : NativeUInt; + TempArray : TCefFrameIdentifierArray; + TempString : string; +begin + TempCount := Chromium1.FrameCount; + + if Chromium1.GetFrameIdentifiers(TempCount, TempArray) then + begin + TempString := ''; + i := 0; + + while (i < TempCount) do + begin + TempString := TempString + inttostr(TempArray[i]) + CRLF; + inc(i); + end; + + clipboard.AsText := TempString; + end; +end; + +procedure TMiniBrowserFrm.CopyFramesNamesMsg(var aMessage : TMessage); +var + TempSL : TStringList; +begin + try + TempSL := TStringList.Create; + + if Chromium1.GetFrameNames(TStrings(TempSL)) then clipboard.AsText := TempSL.Text; + finally + FreeAndNil(TempSL); + end; +end; + procedure TMiniBrowserFrm.ShowResponseMsg(var aMessage : TMessage); begin if (length(FResponse) > 0) then MessageDlg(FResponse, mtInformation, [mbOk], 0); diff --git a/demos/TabbedBrowser/TabBrowser.dsk b/demos/TabbedBrowser/TabBrowser.dsk index bbbf0b48..94150d14 100644 --- a/demos/TabbedBrowser/TabBrowser.dsk +++ b/demos/TabbedBrowser/TabBrowser.dsk @@ -12,20 +12,20 @@ File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Com [Modules] Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\TabBrowser.dproj -Module1=default.htm -Module2=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\uMainForm.pas +Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\uMainForm.pas +Module2=default.htm Count=3 EditWindowCount=1 [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\TabBrowser.dproj] ModuleType=TBaseProject -[default.htm] -ModuleType=TURLModule - [C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\uMainForm.pas] ModuleType=TSourceModule +[default.htm] +ModuleType=TURLModule + [EditWindow0] ViewCount=3 CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\TabBrowser.dpr @@ -48,17 +48,18 @@ ClientHeight=9417 DockedToMainForm=1 BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 -LeftPanelSize=0 +LeftPanelSize=1898 +LeftPanelClients=PropertyInspector,DockSite3 +LeftPanelData=000008000101000000001615000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000471D00001100000050726F7065727479496E73706563746F72FFFFFFFF RightPanelSize=2000 RightPanelClients=DockSite2,DockSite4 -RightPanelData=00000800010100000000261500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000005C1D000009000000446F636B5369746534FFFFFFFF -BottomPanelSize=1529 +RightPanelData=00000800010100000000161500000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000471D000009000000446F636B5369746534FFFFFFFF +BottomPanelSize=1551 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002F90500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF -TabDockLeftClients=PropertyInspector=0,DockSite3=1 [View0] CustomEditViewType=TWelcomePageView @@ -67,19 +68,19 @@ WelcomePageURL=bds:/default.htm [View1] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\uMainForm.pas -CursorX=80 -CursorY=141 -TopLine=365 +CursorX=7 +CursorY=263 +TopLine=227 LeftCol=1 Elisions= -Bookmarks={1,166,37}{2,127,24} +Bookmarks={1,165,37}{2,126,24} EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\uMainForm.pas [View2] CustomEditViewType=TEditView Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\TabbedBrowser\TabBrowser.dpr -CursorX=2 -CursorY=62 +CursorX=55 +CursorY=66 TopLine=41 LeftCol=1 Elisions= @@ -103,11 +104,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -170,12 +171,12 @@ State=0 Left=0 Top=18 Width=10000 -Height=1379 +Height=1401 MaxLeft=-1 MaxTop=-1 ClientWidth=10000 -ClientHeight=1379 -TBDockHeight=1379 +ClientHeight=1401 +TBDockHeight=1401 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -189,11 +190,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=2735 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=2735 +ClientHeight=2713 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -243,8 +244,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-121 +Top=-70 Width=1844 Height=3139 MaxLeft=-1 @@ -297,17 +298,17 @@ StayOnTop=0 [PropertyInspector] PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=357 Width=1898 -Height=7164 +Height=3744 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7164 +ClientHeight=3744 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -383,11 +384,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -402,11 +403,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -425,11 +426,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -444,11 +445,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -585,11 +586,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1121 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1121 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -610,12 +611,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1773 -Height=6738 +Width=1898 +Height=3554 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=3554 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -697,12 +698,12 @@ State=0 Left=0 Top=18 Width=3820 -Height=1379 +Height=1401 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1379 -TBDockHeight=1379 +ClientHeight=1401 +TBDockHeight=1401 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -735,21 +736,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=18 Width=1898 -Height=7164 +Height=3554 MaxLeft=-1 MaxTop=-1 -ClientWidth=1773 -ClientHeight=6738 +ClientWidth=1898 +ClientHeight=3554 TBDockHeight=7164 LRDockWidth=1898 Dockable=1 @@ -769,11 +770,11 @@ State=0 Left=0 Top=449 Width=2000 -Height=2735 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=2735 +ClientHeight=2713 TBDockHeight=7164 LRDockWidth=2000 Dockable=1 diff --git a/demos/TabbedBrowser/TabBrowser.stat b/demos/TabbedBrowser/TabBrowser.stat index 0b0eb14c..e06a1774 100644 --- a/demos/TabbedBrowser/TabBrowser.stat +++ b/demos/TabbedBrowser/TabBrowser.stat @@ -1,10 +1,10 @@ [Stats] -EditorSecs=5580 +EditorSecs=5709 DesignerSecs=425 InspectorSecs=86 -CompileSecs=93874 -OtherSecs=187 +CompileSecs=107989 +OtherSecs=194 StartTime=22/09/2017 23:12:56 RealKeys=0 EffectiveKeys=0 -DebugSecs=699 +DebugSecs=915 diff --git a/demos/TabbedBrowser/uMainForm.dfm b/demos/TabbedBrowser/uMainForm.dfm index e7287283..dc819d6f 100644 --- a/demos/TabbedBrowser/uMainForm.dfm +++ b/demos/TabbedBrowser/uMainForm.dfm @@ -195,8 +195,6 @@ object MainForm: TMainForm 'https://developers.google.com/maps/documentation/javascript/exam' + 'ples/streetview-embed?hl=fr') - ExplicitTop = 1 - ExplicitWidth = 456 end end end diff --git a/source/CEF4Delphi.dsk b/source/CEF4Delphi.dsk index d0b3f9a5..99e5761d 100644 --- a/source/CEF4Delphi.dsk +++ b/source/CEF4Delphi.dsk @@ -1,14 +1,14 @@ [Closed Files] -File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,30,39,60,0,0,, -File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,1387,32,1417,0,0,,{1 -File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,222,49,270,0,0,,{1 -File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBrowser.pas',0,1,185,54,203,0,0,, -File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFStringVisitor.pas',0,1,98,56,131,0,0,, -File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas',0,1,186,45,204,0,0,,{1 -File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumEvents.pas',0,1,1,1,1,0,0,, -File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFCookieManager.pas',0,1,21,23,38,0,0,, -File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,506,3,524,0,0,, -File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFExtension.pas',0,1,48,82,110,0,0,, +File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,1741,1,1761,0,0,,{1,1730,1}{2,1675,41} +File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,30,39,60,0,0,, +File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,240,5,271,0,0,,{1,269,40} +File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBrowser.pas',0,1,186,62,249,0,0,, +File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFX509Certificate.pas',0,1,164,73,195,0,0,, +File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,2490,108,2513,0,0,,{1,2513,79}{2,1011,61} +File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTask.pas',0,1,189,82,245,0,0,,{1,90,17} +File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFStringVisitor.pas',0,1,42,39,78,0,0,,{1 +File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumEvents.pas',0,1,1,1,1,0,0,, +File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFCookieManager.pas',0,1,21,23,38,0,0,, [Modules] Module0=default.htm @@ -38,17 +38,18 @@ ClientHeight=9417 DockedToMainForm=1 BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 -LeftPanelSize=0 +LeftPanelSize=1898 +LeftPanelClients=PropertyInspector,DockSite3 +LeftPanelData=000008000101000000001615000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000471D00001100000050726F7065727479496E73706563746F72FFFFFFFF RightPanelSize=2000 RightPanelClients=DockSite2,DockSite4 -RightPanelData=00000800010100000000261500000000000001D00700000000000001000000004312000009000000446F636B536974653201000000005C1D000009000000446F636B5369746534FFFFFFFF -BottomPanelSize=1529 +RightPanelData=00000800010100000000161500000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000471D000009000000446F636B5369746534FFFFFFFF +BottomPanelSize=1551 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002F90500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF +BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF -TabDockLeftClients=PropertyInspector=0,DockSite3=1 [View0] CustomEditViewType=TWelcomePageView @@ -71,11 +72,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -138,12 +139,12 @@ State=0 Left=0 Top=18 Width=10000 -Height=1379 +Height=1401 MaxLeft=-1 MaxTop=-1 ClientWidth=10000 -ClientHeight=1379 -TBDockHeight=1379 +ClientHeight=1401 +TBDockHeight=1401 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -157,11 +158,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=2735 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=2735 +ClientHeight=2713 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -211,8 +212,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-8 -Top=-30 +Left=-148 +Top=-132 Width=1844 Height=3139 MaxLeft=-1 @@ -265,18 +266,18 @@ StayOnTop=0 [PropertyInspector] PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 -Left=78 -Top=386 +Left=0 +Top=357 Width=1898 -Height=7164 +Height=3744 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7164 -TBDockHeight=7164 +ClientHeight=3744 +TBDockHeight=7220 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -291,11 +292,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6883 +Height=6939 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6883 +ClientHeight=6939 TBDockHeight=5964 LRDockWidth=2508 Dockable=1 @@ -307,8 +308,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-946 -Top=5 +Left=-898 +Top=-132 Width=2844 Height=6200 MaxLeft=-1 @@ -326,8 +327,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-1152 -Top=247 +Left=-1026 +Top=-132 Width=273 Height=359 MaxLeft=-1 @@ -351,11 +352,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -370,11 +371,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -393,11 +394,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -412,11 +413,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -450,11 +451,11 @@ State=0 Left=0 Top=0 Width=2336 -Height=964 +Height=1200 MaxLeft=-1 MaxTop=-1 ClientWidth=2336 -ClientHeight=964 +ClientHeight=1200 TBDockHeight=2321 LRDockWidth=2820 Dockable=1 @@ -515,11 +516,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6883 +Height=6939 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6883 +ClientHeight=6939 TBDockHeight=4888 LRDockWidth=7148 Dockable=1 @@ -531,8 +532,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=249 -Top=709 +Left=0 +Top=0 Width=2859 Height=3206 MaxLeft=-1 @@ -553,11 +554,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1099 +Height=1143 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1099 +ClientHeight=1143 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -579,11 +580,11 @@ State=0 Left=0 Top=0 Width=1898 -Height=7489 +Height=3554 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7489 +ClientHeight=3554 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -598,11 +599,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=6883 +Height=6939 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=6883 +ClientHeight=6939 TBDockHeight=4888 LRDockWidth=5305 Dockable=1 @@ -663,14 +664,14 @@ Visible=0 Docked=1 State=0 Left=0 -Top=18 +Top=0 Width=3820 -Height=1379 +Height=1424 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1379 -TBDockHeight=1379 +ClientHeight=1424 +TBDockHeight=1424 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -694,7 +695,7 @@ MaxLeft=-1 MaxTop=-1 ClientWidth=2000 ClientHeight=4585 -TBDockHeight=7164 +TBDockHeight=7220 LRDockWidth=2000 Dockable=1 StayOnTop=0 @@ -703,22 +704,22 @@ 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=1 -Top=24 +Left=0 +Top=18 Width=1898 -Height=7489 +Height=3554 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=7489 -TBDockHeight=7164 +ClientHeight=3554 +TBDockHeight=7220 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -737,12 +738,12 @@ State=0 Left=0 Top=449 Width=2000 -Height=2735 +Height=2713 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=2735 -TBDockHeight=7164 +ClientHeight=2713 +TBDockHeight=7220 LRDockWidth=2000 Dockable=1 StayOnTop=0 diff --git a/source/CEF4Delphi.identcache b/source/CEF4Delphi.identcache index b4455a95..a8afbb43 100644 Binary files a/source/CEF4Delphi.identcache and b/source/CEF4Delphi.identcache differ diff --git a/source/CEF4Delphi.stat b/source/CEF4Delphi.stat index 0cb18426..61c837e5 100644 --- a/source/CEF4Delphi.stat +++ b/source/CEF4Delphi.stat @@ -1,9 +1,9 @@ [Stats] -EditorSecs=178297 +EditorSecs=181807 DesignerSecs=98 InspectorSecs=326 -CompileSecs=5611130 -OtherSecs=18760 +CompileSecs=5685029 +OtherSecs=18957 StartTime=22/01/2017 10:49:52 RealKeys=0 EffectiveKeys=0 diff --git a/source/uCEFApplication.pas b/source/uCEFApplication.pas index 0d252492..31002a7c 100644 --- a/source/uCEFApplication.pas +++ b/source/uCEFApplication.pas @@ -57,7 +57,7 @@ uses const CEF_SUPPORTED_VERSION_MAJOR = 3; CEF_SUPPORTED_VERSION_MINOR = 3163; - CEF_SUPPORTED_VERSION_RELEASE = 1669; + CEF_SUPPORTED_VERSION_RELEASE = 1670; CEF_SUPPORTED_VERSION_BUILD = 0; CEF_CHROMEELF_VERSION_MAJOR = 61; diff --git a/source/uCEFBrowser.pas b/source/uCEFBrowser.pas index a2574b50..c62896c6 100644 --- a/source/uCEFBrowser.pas +++ b/source/uCEFBrowser.pas @@ -48,9 +48,9 @@ interface uses {$IFDEF DELPHI16_UP} - System.Classes, + System.Classes, System.SysUtils, {$ELSE} - Classes, + Classes, SysUtils, {$ENDIF} uCEFBaseRefCounted, uCEFInterfaces, uCEFTypes; @@ -75,8 +75,8 @@ type function GetFrameByident(identifier: Int64): ICefFrame; function GetFrame(const name: ustring): ICefFrame; function GetFrameCount: NativeUInt; - procedure GetFrameIdentifiers(count: PNativeUInt; identifiers: PInt64); - procedure GetFrameNames(const aFrameNames : TStrings); + function GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean; + function GetFrameNames(var aFrameNames : TStrings) : boolean; function SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage): Boolean; public @@ -189,37 +189,67 @@ begin Result := PCefBrowser(FData)^.get_frame_count(PCefBrowser(FData)); end; -procedure TCefBrowserRef.GetFrameIdentifiers(count: PNativeUInt; identifiers: PInt64); +function TCefBrowserRef.GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean; +var + i : NativeUInt; begin - PCefBrowser(FData)^.get_frame_identifiers(PCefBrowser(FData), count, identifiers); + Result := False; + + try + if (aFrameCount > 0) then + begin + SetLength(aFrameIdentifierArray, aFrameCount); + i := 0; + while (i < aFrameCount) do + begin + aFrameIdentifierArray[i] := 0; + inc(i); + end; + + PCefBrowser(FData)^.get_frame_identifiers(PCefBrowser(FData), aFrameCount, aFrameIdentifierArray[0]); + + Result := True; + end; + except + on e : exception do + if CustomExceptionHandler('TCefBrowserRef.GetFrameIdentifiers', e) then raise; + end; end; -procedure TCefBrowserRef.GetFrameNames(const aFrameNames : TStrings); +function TCefBrowserRef.GetFrameNames(var aFrameNames : TStrings) : boolean; var TempSL : TCefStringList; i, j : Integer; TempString : TCefString; begin TempSL := nil; + Result := False; try - if (aFrameNames <> nil) then - begin - TempSL := cef_string_list_alloc; - PCefBrowser(FData)^.get_frame_names(PCefBrowser(FData), TempSL); - FillChar(TempString, SizeOf(TempString), 0); + try + if (aFrameNames <> nil) then + begin + TempSL := cef_string_list_alloc; + PCefBrowser(FData)^.get_frame_names(PCefBrowser(FData), TempSL); + FillChar(TempString, SizeOf(TempString), 0); - i := 0; - j := cef_string_list_size(TempSL); + i := 0; + j := cef_string_list_size(TempSL); - while (i < j) do - begin - FillChar(TempString, SizeOf(TempString), 0); - cef_string_list_value(TempSL, i, @TempString); - aFrameNames.Add(CefStringClearAndGet(TempString)); - inc(i); - end; - end; + while (i < j) do + begin + FillChar(TempString, SizeOf(TempString), 0); + cef_string_list_value(TempSL, i, @TempString); + aFrameNames.Add(CefStringClearAndGet(TempString)); + inc(i); + end; + + Result := True; + end; + except + on e : exception do + if CustomExceptionHandler('TCefBrowserRef.GetFrameNames', e) then raise; + end; finally if (TempSL <> nil) then cef_string_list_free(TempSL); end; diff --git a/source/uCEFChromium.pas b/source/uCEFChromium.pas index 175f1fe0..3b9a5b12 100644 --- a/source/uCEFChromium.pas +++ b/source/uCEFChromium.pas @@ -394,7 +394,9 @@ type // Internal procedures. // Only tasks, visitors or callbacks should use them in the right thread/process. procedure Internal_CookiesDeleted(numDeleted : integer); - procedure Internal_GetHTML(const aFrameName : ustring); + procedure Internal_GetHTML(const aFrameName : ustring); overload; + procedure Internal_GetHTML(const aFrame : ICefFrame); overload; + procedure Internal_GetHTML(const aFrameIdentifier : int64); overload; procedure Internal_PdfPrintFinished(aResultOK : boolean); procedure Internal_TextResultAvailable(const aText : string); procedure Internal_UpdatePreferences; @@ -413,8 +415,11 @@ type procedure SimulateMouseWheel(aDeltaX, aDeltaY : integer); procedure DeleteCookies; - procedure RetrieveHTML(const aFrameName : ustring = ''); - procedure GetFrameNames(const aFrameNames : TStrings); + procedure RetrieveHTML(const aFrameName : ustring = ''); overload; + procedure RetrieveHTML(const aFrame : ICefFrame); overload; + procedure RetrieveHTML(const aFrameIdentifier : int64); overload; + function GetFrameNames(var aFrameNames : TStrings) : boolean; + function GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean; procedure ExecuteJavaScript(const aCode, aScriptURL : ustring; aStartLine : integer = 0); procedure UpdatePreferences; procedure SavePreferences(const aFileName : string); @@ -1677,6 +1682,34 @@ begin end; end; +procedure TChromium.Internal_GetHTML(const aFrame : ICefFrame); +begin + if Initialized and (aFrame <> nil) then + begin + if (FVisitor = nil) then FVisitor := TCustomCefStringVisitor.Create(self); + aFrame.GetSource(FVisitor); + end; +end; + +procedure TChromium.Internal_GetHTML(const aFrameIdentifier : int64); +var + TempFrame : ICefFrame; +begin + if Initialized then + begin + if (aFrameIdentifier <> low(int64)) then + TempFrame := FBrowser.GetFrameByident(aFrameIdentifier) + else + TempFrame := FBrowser.MainFrame; + + if (TempFrame <> nil) then + begin + if (FVisitor = nil) then FVisitor := TCustomCefStringVisitor.Create(self); + TempFrame.GetSource(FVisitor); + end; + end; +end; + procedure TChromium.DeleteCookies; var TempTask: ICefTask; @@ -1701,9 +1734,36 @@ begin end; end; -procedure TChromium.GetFrameNames(const aFrameNames : TStrings); +procedure TChromium.RetrieveHTML(const aFrame : ICefFrame); +var + TempTask: ICefTask; begin - if Initialized then FBrowser.GetFrameNames(aFrameNames); + if Initialized then + begin + TempTask := TCefGetHTMLTask.Create(self, aFrame); + CefPostTask(TID_UI, TempTask); + end; +end; + +procedure TChromium.RetrieveHTML(const aFrameIdentifier : int64); +var + TempTask: ICefTask; +begin + if Initialized then + begin + TempTask := TCefGetHTMLTask.Create(self, aFrameIdentifier); + CefPostTask(TID_UI, TempTask); + end; +end; + +function TChromium.GetFrameNames(var aFrameNames : TStrings) : boolean; +begin + Result := Initialized and FBrowser.GetFrameNames(aFrameNames); +end; + +function TChromium.GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean; +begin + Result := Initialized and FBrowser.GetFrameIdentifiers(aFrameCount, aFrameIdentifierArray); end; procedure TChromium.UpdatePreferences; diff --git a/source/uCEFInterfaces.pas b/source/uCEFInterfaces.pas index 885634e4..7309a959 100644 --- a/source/uCEFInterfaces.pas +++ b/source/uCEFInterfaces.pas @@ -105,6 +105,7 @@ type TCefv8ValueArray = array of ICefv8Value; TCefX509CertificateArray = array of ICefX509Certificate; TCefBinaryValueArray = array of ICefBinaryValue; + TCefFrameIdentifierArray = array of int64; TOnPdfPrintFinishedProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const path: ustring; ok: Boolean); TCefDomVisitorProc = {$IFDEF DELPHI12_UP}reference to{$ENDIF} procedure(const document: ICefDomDocument); @@ -266,8 +267,8 @@ type function GetFrameByident(identifier: Int64): ICefFrame; function GetFrame(const name: ustring): ICefFrame; function GetFrameCount: NativeUInt; - procedure GetFrameIdentifiers(count: PNativeUInt; identifiers: PInt64); - procedure GetFrameNames(const aFrameNames : TStrings); + function GetFrameIdentifiers(var aFrameCount : NativeUInt; var aFrameIdentifierArray : TCefFrameIdentifierArray) : boolean; + function GetFrameNames(var aFrameNames : TStrings) : boolean; function SendProcessMessage(targetProcess: TCefProcessId; const ProcMessage: ICefProcessMessage): Boolean; property MainFrame: ICefFrame read GetMainFrame; property FocusedFrame: ICefFrame read GetFocusedFrame; diff --git a/source/uCEFTask.pas b/source/uCEFTask.pas index 6d3265ce..461c4334 100644 --- a/source/uCEFTask.pas +++ b/source/uCEFTask.pas @@ -84,11 +84,16 @@ type protected FChromiumBrowser : TObject; FFrameName : ustring; + FFrame : ICefFrame; + FFrameIdentifier : int64; procedure Execute; override; public - constructor Create(const aChromiumBrowser : TObject; const aFrameName : ustring); reintroduce; + constructor Create(const aChromiumBrowser : TObject; const aFrameName : ustring); reintroduce; overload; + constructor Create(const aChromiumBrowser : TObject; const aFrame : ICefFrame); reintroduce; overload; + constructor Create(const aChromiumBrowser : TObject; const aFrameIdentifier : int64); reintroduce; overload; + destructor Destroy; override; end; TCefDeleteCookiesTask = class(TCefTaskOwn) @@ -196,12 +201,49 @@ begin FChromiumBrowser := aChromiumBrowser; FFrameName := aFrameName; + FFrame := nil; + FFrameIdentifier := 0; +end; + +constructor TCefGetHTMLTask.Create(const aChromiumBrowser : TObject; const aFrame : ICefFrame); +begin + inherited Create; + + FChromiumBrowser := aChromiumBrowser; + FFrameName := ''; + FFrame := aFrame; + FFrameIdentifier := 0; +end; + +constructor TCefGetHTMLTask.Create(const aChromiumBrowser : TObject; const aFrameIdentifier : int64); +begin + inherited Create; + + FChromiumBrowser := aChromiumBrowser; + FFrameName := ''; + FFrame := nil; + FFrameIdentifier := aFrameIdentifier; +end; + +destructor TCefGetHTMLTask.Destroy; +begin + FFrame := nil; + + inherited Destroy; end; procedure TCefGetHTMLTask.Execute; begin if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then - TChromium(FChromiumBrowser).Internal_GetHTML(FFrameName); + begin + if (FFrame <> nil) then + TChromium(FChromiumBrowser).Internal_GetHTML(FFrame) + else + if (FFrameIdentifier <> 0) then + TChromium(FChromiumBrowser).Internal_GetHTML(FFrameIdentifier) + else + TChromium(FChromiumBrowser).Internal_GetHTML(FFrameName); + end; end; diff --git a/source/uCEFTypes.pas b/source/uCEFTypes.pas index bba16543..c67f009f 100644 --- a/source/uCEFTypes.pas +++ b/source/uCEFTypes.pas @@ -2510,7 +2510,7 @@ type get_frame_byident: function(self: PCefBrowser; identifier: Int64): PCefFrame; stdcall; get_frame: function(self: PCefBrowser; const name: PCefString): PCefFrame; stdcall; get_frame_count: function(self: PCefBrowser): NativeUInt; stdcall; - get_frame_identifiers: procedure(self: PCefBrowser; identifiersCount: PNativeUInt; identifiers: PInt64); stdcall; + get_frame_identifiers: procedure(self: PCefBrowser; var identifiersCount: NativeUInt; var identifiers: Int64); stdcall; get_frame_names: procedure(self: PCefBrowser; names: TCefStringList); stdcall; send_process_message: function(self: PCefBrowser; target_process: TCefProcessId; message: PCefProcessMessage): Integer; stdcall; end;