1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-04-07 06:50:04 +02:00

Added a simple DOM iteration to the MniBrowser demo

This commit is contained in:
Salvador Diaz Fau 2017-06-17 09:19:18 +02:00
parent 967b041bb1
commit 387f67249b
7 changed files with 136 additions and 106 deletions

View File

@ -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);

View File

@ -138,12 +138,27 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<DeployClass Name="ProjectOSXResource">
@ -497,27 +512,12 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<DeployClass Name="DependencyModule">
<Platform Name="Win32">
<Operation>0</Operation>
<Extensions>.dll;.bpl</Extensions>
</Platform>
<DeployClass Name="ProjectiOSDeviceResourceRules">
<Platform Name="iOSDevice64">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="OSX32">
<RemoteDir>Contents\MacOS</RemoteDir>
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSDevice32">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
<Platform Name="iOSSimulator">
<Operation>1</Operation>
<Extensions>.dylib</Extensions>
</Platform>
</DeployClass>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>

View File

@ -2,16 +2,16 @@
<BorlandProject>
<Transactions>
<Transaction>2017/02/11 10:15:32.000.980,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>2017/02/11 17:10:26.000.471,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>2017/03/12 17:11:11.000.786,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas</Transaction>
<Transaction>2017/03/13 19:22:41.000.994,C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uFileScheme.pas=</Transaction>
<Transaction>2017/03/13 19:23:05.000.371,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uHelloScheme.pas</Transaction>
<Transaction>2017/03/15 12:39:07.000.741,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
</Transactions>
</BorlandProject>

View File

@ -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

View File

@ -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

View File

@ -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);