From 387f67249b4ad81c64150360ecbcbbf9ffcdc6bd Mon Sep 17 00:00:00 2001 From: Salvador Diaz Fau Date: Sat, 17 Jun 2017 09:19:18 +0200 Subject: [PATCH] Added a simple DOM iteration to the MniBrowser demo --- demos/MiniBrowser/MiniBrowser.dpr | 34 ++++- demos/MiniBrowser/MiniBrowser.dproj | 34 ++--- demos/MiniBrowser/MiniBrowser.dproj.local | 12 +- demos/MiniBrowser/MiniBrowser.dsk | 152 +++++++++++----------- demos/MiniBrowser/MiniBrowser.identcache | Bin 672 -> 570 bytes demos/MiniBrowser/MiniBrowser.stat | 8 +- demos/MiniBrowser/uMiniBrowser.pas | 2 +- 7 files changed, 136 insertions(+), 106 deletions(-) diff --git a/demos/MiniBrowser/MiniBrowser.dpr b/demos/MiniBrowser/MiniBrowser.dpr index a9cf6e04..dd96cf93 100644 --- a/demos/MiniBrowser/MiniBrowser.dpr +++ b/demos/MiniBrowser/MiniBrowser.dpr @@ -42,9 +42,9 @@ program MiniBrowser; uses {$IFDEF DELPHI16_UP} - Vcl.Forms, + Vcl.Forms, System.SysUtils, {$ELSE} - Forms, + Forms, SysUtils, {$ENDIF} uCEFApplication, uCEFMiscFunctions, @@ -53,6 +53,7 @@ uses uCEFv8Handler, uCEFInterfaces, uCEFDomVisitor, + uCEFDomNode, uCEFConstants, uCEFTypes, uCEFTask, @@ -69,12 +70,41 @@ uses var TempProcessHandler : TCefCustomRenderProcessHandler; +procedure SimpleDOMIteration(const aDocument: ICefDomDocument); +var + TempHead, TempChild : ICefDomNode; +begin + try + if (aDocument <> nil) then + begin + TempHead := aDocument.Head; + + if (TempHead <> nil) then + begin + TempChild := TempHead.FirstChild; + + while (TempChild <> nil) do + begin + CefLog('CEF4Delphi', 1, CEF_LOG_SEVERITY_ERROR, 'Head child element : ' + TempChild.Name); + TempChild := TempChild.NextSibling; + end; + end; + end; + except + on e : exception do + if CustomExceptionHandler('SimpleDOMIteration', e) then raise; + end; +end; + procedure DOMVisitor_OnDocAvailable(const document: ICefDomDocument); begin // This function is called from a different process. // document is only valid inside this function. // As an example, this function only writes the document title to the 'debug.log' file. CefLog('CEF4Delphi', 1, CEF_LOG_SEVERITY_ERROR, 'document.Title : ' + document.Title); + + // Simple DOM iteration example + SimpleDOMIteration(document); end; procedure ProcessHandler_OnCustomMessage(const browser: ICefBrowser; sourceProcess: TCefProcessId; const message: ICefProcessMessage); diff --git a/demos/MiniBrowser/MiniBrowser.dproj b/demos/MiniBrowser/MiniBrowser.dproj index b123d902..01f060c9 100644 --- a/demos/MiniBrowser/MiniBrowser.dproj +++ b/demos/MiniBrowser/MiniBrowser.dproj @@ -138,12 +138,27 @@ true - + + + 0 + .dll;.bpl + 1 + .dylib + + + Contents\MacOS + 1 + .dylib 1 + .dylib + + + 1 + .dylib @@ -497,27 +512,12 @@ 1 - - - 0 - .dll;.bpl - + 1 - .dylib - - - Contents\MacOS - 1 - .dylib 1 - .dylib - - - 1 - .dylib diff --git a/demos/MiniBrowser/MiniBrowser.dproj.local b/demos/MiniBrowser/MiniBrowser.dproj.local index 702d0065..486717c4 100644 --- a/demos/MiniBrowser/MiniBrowser.dproj.local +++ b/demos/MiniBrowser/MiniBrowser.dproj.local @@ -2,16 +2,16 @@ 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\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 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 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\Unit1.pas=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.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/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\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/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 9318c057..826bf82a 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\source\uCEFMiscFunctions.pas',0,1,466,29,481,0,0,, -File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,654,28,685,0,0,, -File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\FastMM4\FastMM4.pas',0,1,9585,1,9607,0,0,, -File_3=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.Windows.pas',0,1,22517,1,22546,0,0,, -File_4=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Forms.pas',0,1,4931,72,4962,0,0,{{1729,4} -File_5=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,9646,1,9668,0,0,, -File_6=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.ComCtrls.pas',0,1,7510,1,7532,0,0,{{17105,0} -File_7=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\RTL\SYS\System.SysUtils.pas',0,1,24591,1,24613,0,0,, -File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,226,40,238,0,0,, -File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas',0,1,90,77,136,0,0,, +File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomNode.pas',0,1,34,1,1,0,0,, +File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,577,11,609,0,0,, +File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFDomDocument.pas',0,1,25,1,1,0,0,, +File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,726,3,764,0,0,, +File_4=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\RTL\SYS\System.SysUtils.pas',0,1,341,1,370,0,0,, +File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,466,29,481,0,0,, +File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\FastMM4\FastMM4.pas',0,1,9585,1,9607,0,0,, +File_7=TSourceModule,'c:\program files\embarcadero\studio\17.0\source\rtl\win\Winapi.Windows.pas',0,1,22517,1,22546,0,0,, +File_8=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Forms.pas',0,1,4931,72,4962,0,0,{{1729,4} +File_9=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,9646,1,9668,0,0,, [Modules] Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj @@ -52,15 +52,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0 TopPanelSize=0 LeftPanelSize=0 RightPanelSize=2000 -RightPanelClients=DockSite2,DockSite4 -RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF -BottomPanelSize=0 +RightPanelClients=DockSite2 +RightPanelData=000008000101000000001E1500000000000001D0070000000000000100000000511D000009000000446F636B5369746532FFFFFFFF +BottomPanelSize=1551 BottomPanelClients=DockSite1,MessageView -BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF +BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF BottomMiddlePanelSize=0 BottomMiddlePanelClients=DockSite0,GraphDrawingModel BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF TabDockLeftClients=PropertyInspector=0,DockSite3=1 +TabDockRightClients=DockSite4=0 [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\MiniBrowser.dpr -CursorX=86 -CursorY=25 -TopLine=1 +CursorX=2 +CursorY=162 +TopLine=65 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\uMiniBrowser.pas -CursorX=75 -CursorY=189 -TopLine=328 +CursorX=57 +CursorY=588 +TopLine=567 LeftCol=1 Elisions= Bookmarks={1,516,1} @@ -102,11 +103,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=213 LRDockWidth=13602 Dockable=1 @@ -150,11 +151,11 @@ State=0 Left=0 Top=0 Width=2000 -Height=4226 +Height=7197 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=4226 +ClientHeight=7197 TBDockHeight=5897 LRDockWidth=2352 Dockable=1 @@ -163,18 +164,18 @@ StayOnTop=0 [MessageView] PercentageSizes=1 Create=1 -Visible=0 +Visible=1 Docked=1 State=0 Left=0 -Top=0 -Width=2773 -Height=1424 +Top=23 +Width=10000 +Height=1345 MaxLeft=-1 MaxTop=-1 -ClientWidth=2773 -ClientHeight=1424 -TBDockHeight=1424 +ClientWidth=10000 +ClientHeight=1345 +TBDockHeight=1345 LRDockWidth=2773 Dockable=1 StayOnTop=0 @@ -187,12 +188,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=2000 -Height=4339 +Width=1875 +Height=6738 MaxLeft=-1 MaxTop=-1 -ClientWidth=2000 -ClientHeight=4339 +ClientWidth=1875 +ClientHeight=6738 TBDockHeight=7152 LRDockWidth=2000 Dockable=1 @@ -299,15 +300,15 @@ Create=1 Visible=0 Docked=1 State=0 -Left=1 -Top=24 +Left=78 +Top=386 Width=1898 -Height=9148 +Height=7164 MaxLeft=-1 MaxTop=-1 ClientWidth=1898 -ClientHeight=9148 -TBDockHeight=3094 +ClientHeight=7164 +TBDockHeight=7164 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -357,8 +358,8 @@ Create=1 Visible=0 Docked=1 State=0 -Left=-1152 -Top=243 +Left=-8 +Top=287 Width=273 Height=359 MaxLeft=-1 @@ -382,11 +383,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=415 LRDockWidth=4953 Dockable=1 @@ -401,11 +402,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=213 LRDockWidth=7406 Dockable=1 @@ -414,7 +415,6 @@ Column0Width=145 Column1Width=100 Column2Width=115 Column3Width=250 -Column4Width=250 [LocalVarsWindow] PercentageSizes=1 @@ -425,11 +425,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=1536 LRDockWidth=3484 Dockable=1 @@ -444,11 +444,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=2063 LRDockWidth=3484 Dockable=1 @@ -566,11 +566,11 @@ State=0 Left=0 Top=0 Width=3820 -Height=1121 +Height=1043 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1121 +ClientHeight=1043 TBDockHeight=1547 LRDockWidth=8742 Dockable=1 @@ -591,12 +591,12 @@ Docked=1 State=0 Left=0 Top=0 -Width=1898 -Height=9148 +Width=1773 +Height=6738 MaxLeft=-1 MaxTop=-1 -ClientWidth=1898 -ClientHeight=9148 +ClientWidth=1773 +ClientHeight=6738 TBDockHeight=3677 LRDockWidth=1898 Dockable=1 @@ -678,12 +678,12 @@ State=0 Left=0 Top=23 Width=3820 -Height=1424 +Height=1345 MaxLeft=-1 MaxTop=-1 ClientWidth=3820 -ClientHeight=1424 -TBDockHeight=1424 +ClientHeight=1345 +TBDockHeight=1345 LRDockWidth=3820 Dockable=1 StayOnTop=0 @@ -702,12 +702,12 @@ State=0 Left=0 Top=23 Width=2000 -Height=4529 +Height=7500 MaxLeft=-1 MaxTop=-1 ClientWidth=2000 -ClientHeight=4529 -TBDockHeight=7119 +ClientHeight=7500 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 @@ -723,15 +723,15 @@ Create=1 Visible=0 Docked=1 State=0 -Left=1 -Top=24 +Left=0 +Top=0 Width=1898 -Height=9148 +Height=7164 MaxLeft=-1 MaxTop=-1 -ClientWidth=1898 -ClientHeight=9148 -TBDockHeight=3094 +ClientWidth=1773 +ClientHeight=6738 +TBDockHeight=7164 LRDockWidth=1898 Dockable=1 StayOnTop=0 @@ -740,22 +740,22 @@ ActiveTabID=StructureView TabDockClients=StructureView,ClassBrowserTool [DockSite4] -HostDockSite=DockRightPanel +HostDockSite=RightTabDock DockSiteType=1 PercentageSizes=1 Create=1 -Visible=1 +Visible=0 Docked=1 State=0 Left=0 -Top=454 +Top=0 Width=2000 -Height=4339 +Height=7164 MaxLeft=-1 MaxTop=-1 -ClientWidth=2000 -ClientHeight=4339 -TBDockHeight=7119 +ClientWidth=1875 +ClientHeight=6738 +TBDockHeight=7164 LRDockWidth=2000 Dockable=1 StayOnTop=0 diff --git a/demos/MiniBrowser/MiniBrowser.identcache b/demos/MiniBrowser/MiniBrowser.identcache index 6e3dc1549c2d436299f50c8eb1c0f717efa04bc1..f878b729dbed03f3f328717838739e5660111717 100644 GIT binary patch delta 26 icmZ3$x{HO8bs}TQ#1~M)0PV;V)c^nh diff --git a/demos/MiniBrowser/MiniBrowser.stat b/demos/MiniBrowser/MiniBrowser.stat index 83f055a5..83059ce7 100644 --- a/demos/MiniBrowser/MiniBrowser.stat +++ b/demos/MiniBrowser/MiniBrowser.stat @@ -1,10 +1,10 @@ [Stats] -EditorSecs=35019 +EditorSecs=35701 DesignerSecs=2136 InspectorSecs=1501 -CompileSecs=1831164 -OtherSecs=5860 +CompileSecs=1855626 +OtherSecs=5884 StartTime=11/02/2017 10:51:15 RealKeys=0 EffectiveKeys=0 -DebugSecs=26376 +DebugSecs=26407 diff --git a/demos/MiniBrowser/uMiniBrowser.pas b/demos/MiniBrowser/uMiniBrowser.pas index 49a391d6..bd225cd4 100644 --- a/demos/MiniBrowser/uMiniBrowser.pas +++ b/demos/MiniBrowser/uMiniBrowser.pas @@ -585,7 +585,7 @@ procedure TMiniBrowserFrm.VisitDOMMsg(var aMessage : TMessage); var TempMsg : ICefProcessMessage; begin - // Only works using a TCefCustomRenderProcessHandler. See MiniBrowser demo. + // Only works using a TCefCustomRenderProcessHandler. // Use the ArgumentList property if you need to pass some parameters. TempMsg := TCefProcessMessageRef.New('retrievedom'); // Same name than TCefCustomRenderProcessHandler.MessageName Chromium1.SendProcessMessage(PID_RENDERER, TempMsg);