1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-02-02 10:25:26 +02:00

Update to CEF3.2924.1575

MiniBrowser : Addition of a preferences form, replacement of URLEdt by
URLCbx, addition of a custom scheme
TCEFApplication : Addition of 3 new properties : EnableSpellingService,
EnableMediaStream, EnableSpeechInput
TCEFChromium : Renamed internal procedures, addition of
UppdatePreferences and SavePreferences procedures, more checks in
doOnBeforeClose and doOnClose.
TCefChromiumWindow : WebBrowser_OnClose returns False by default
This commit is contained in:
Salvador Diaz Fau 2017-03-15 14:53:45 +01:00
parent b35837585c
commit 6178ab49a5
29 changed files with 1223 additions and 451 deletions

View File

@ -45,17 +45,27 @@ uses
Vcl.Forms,
{$ELSE}
Forms,
{$ENDIF}
{$ENDIF }
uCEFApplication,
uCEFInterfaces,
uCEFMiscFunctions,
uMiniBrowser in 'uMiniBrowser.pas' {MiniBrowserFrm},
uTestExtension in 'uTestExtension.pas';
uTestExtension in 'uTestExtension.pas',
uHelloScheme in 'uHelloScheme.pas',
uPreferences in 'uPreferences.pas' {PreferencesFrm};
{$R *.res}
procedure GlobalCEFApp_OnRegCustomSchemes(const registrar: ICefSchemeRegistrar);
begin
registrar.AddCustomScheme('hello', True, True, False);
end;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.RemoteDebuggingPort := 9000;
GlobalCEFApp.RenderProcessHandler := TCustomRenderProcessHandler.Create;
GlobalCEFApp.OnRegCustomSchemes := GlobalCEFApp_OnRegCustomSchemes;
// Examples of command line switches.
// **********************************
@ -66,19 +76,14 @@ begin
// Uncomment the following line to change the user agent string.
//GlobalCEFApp.AddCustomCommandLine('--user-agent', 'MiniBrowser');
//GlobalCEFApp.LibCef := 'cef\libcef.dll';
//GlobalCEFApp.FrameworkDirPath := 'k:\cef\';
//GlobalCEFApp.ResourcesDirPath := 'k:\cef\';
//GlobalCEFApp.LocalesDirPath := 'k:\cef\locales\';
//GlobalCEFApp.CheckCEFFiles := False;
if GlobalCEFApp.StartMainProcess then
begin
CefRegisterSchemeHandlerFactory('hello', '', THelloScheme);
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TMiniBrowserFrm, MiniBrowserFrm);
Application.CreateForm(TPreferencesFrm, PreferencesFrm);
Application.Run;
end;

View File

@ -102,6 +102,11 @@
<Form>MiniBrowserFrm</Form>
</DCCReference>
<DCCReference Include="uTestExtension.pas"/>
<DCCReference Include="uHelloScheme.pas"/>
<DCCReference Include="uPreferences.pas">
<Form>PreferencesFrm</Form>
<FormType>dfm</FormType>
</DCCReference>
<BuildConfiguration Include="Release">
<Key>Cfg_2</Key>
<CfgParent>Base</CfgParent>
@ -134,27 +139,12 @@
<Overwrite>true</Overwrite>
</Platform>
</DeployFile>
<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>
<DeployClass Name="ProjectOSXResource">
@ -508,12 +498,27 @@
<Operation>1</Operation>
</Platform>
</DeployClass>
<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>
<ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>

View File

@ -2,10 +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.dfm=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\Unit1.dfm</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: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.741,=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\Unit1.pas</Transaction>
<Transaction>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</Transaction>
<Transaction>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</Transaction>
</Transactions>
</BorlandProject>

View File

@ -1,20 +1,25 @@
[Closed Files]
File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,738,90,771,0,0,,
File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,961,23,995,0,0,,
File_2=TSourceModule,'V:\dcef3-2883\src\ceflib.pas',0,1,2391,60,2406,0,0,,
File_3=TSourceModule,'V:\2924\include\internal\cef_types.h',0,1,173,11,182,0,0,,
File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uTestExtension.pas',0,1,1,61,103,0,0,,
File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,397,11,431,0,0,,
File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFLibFunctions.pas',0,1,200,75,229,0,0,,
File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFConstants.pas',0,1,208,11,248,0,0,,
File_8=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\RTL\SYS\System.pas',0,1,29880,1,29902,0,0,,
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,,
[Modules]
Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas
Module1=default.htm
Count=2
Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj
Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas
Module2=default.htm
Count=3
EditWindowCount=1
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dproj]
ModuleType=TBaseProject
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas]
ModuleType=TSourceModule
FormState=1
@ -24,10 +29,11 @@ FormOnTop=0
ModuleType=TURLModule
[EditWindow0]
ViewCount=2
CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas
ViewCount=3
CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr
View0=0
View1=1
View2=2
PercentageSizes=1
Create=1
Visible=1
@ -44,18 +50,17 @@ ClientHeight=9428
DockedToMainForm=1
BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
TopPanelSize=0
LeftPanelSize=1898
LeftPanelClients=PropertyInspector,DockSite3
LeftPanelData=00000800010100000000AA19000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000A12300001100000050726F7065727479496E73706563746F72FFFFFFFF
LeftPanelSize=0
RightPanelSize=2000
RightPanelClients=DockSite2,DockSite4
RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF
RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000110E000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF
BottomPanelSize=0
BottomPanelClients=DockSite1,MessageView
BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF
BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B3600000000000002E80600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF
BottomMiddlePanelSize=0
BottomMiddlePanelClients=DockSite0,GraphDrawingModel
BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF
TabDockLeftClients=DockSite3=0,PropertyInspector=1
[View0]
CustomEditViewType=TWelcomePageView
@ -64,14 +69,25 @@ WelcomePageURL=bds:/default.htm
[View1]
CustomEditViewType=TEditView
Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas
CursorX=45
CursorY=268
TopLine=233
CursorX=68
CursorY=342
TopLine=356
LeftCol=1
Elisions=
Bookmarks=
EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\uMiniBrowser.pas
[View2]
CustomEditViewType=TEditView
Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr
CursorX=3
CursorY=86
TopLine=49
LeftCol=1
Elisions=
Bookmarks=
EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\MiniBrowser\MiniBrowser.dpr
[Watches]
Count=0
@ -86,11 +102,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=213
LRDockWidth=13602
Dockable=1
@ -134,11 +150,11 @@ State=0
Left=0
Top=0
Width=2000
Height=4226
Height=3117
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4226
ClientHeight=3117
TBDockHeight=5897
LRDockWidth=2352
Dockable=1
@ -151,14 +167,14 @@ Visible=0
Docked=1
State=0
Left=0
Top=0
Width=2773
Height=1424
Top=23
Width=10000
Height=1570
MaxLeft=-1
MaxTop=-1
ClientWidth=2773
ClientHeight=1424
TBDockHeight=1424
ClientWidth=10000
ClientHeight=1570
TBDockHeight=1570
LRDockWidth=2773
Dockable=1
StayOnTop=0
@ -172,11 +188,11 @@ State=0
Left=0
Top=0
Width=2000
Height=4339
Height=5448
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4339
ClientHeight=5448
TBDockHeight=7152
LRDockWidth=2000
Dockable=1
@ -226,8 +242,8 @@ Create=1
Visible=0
Docked=1
State=0
Left=-121
Top=-74
Left=-8
Top=-30
Width=1844
Height=3139
MaxLeft=-1
@ -280,22 +296,22 @@ StayOnTop=0
[PropertyInspector]
PercentageSizes=1
Create=1
Visible=1
Visible=0
Docked=1
State=0
Left=0
Top=362
Left=1
Top=24
Width=1898
Height=5370
Height=9148
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=5370
ClientHeight=9148
TBDockHeight=7119
LRDockWidth=1898
Dockable=1
StayOnTop=0
SplitPos=111
SplitPos=119
[frmDesignPreview]
PercentageSizes=1
@ -366,11 +382,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=415
LRDockWidth=4953
Dockable=1
@ -385,11 +401,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=213
LRDockWidth=7406
Dockable=1
@ -408,11 +424,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=1536
LRDockWidth=3484
Dockable=1
@ -427,11 +443,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=2063
LRDockWidth=3484
Dockable=1
@ -549,11 +565,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1121
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1121
ClientHeight=1345
TBDockHeight=1547
LRDockWidth=8742
Dockable=1
@ -574,12 +590,12 @@ Docked=1
State=0
Left=0
Top=0
Width=1898
Height=3498
Width=1773
Height=6693
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=3498
ClientWidth=1773
ClientHeight=6693
TBDockHeight=3677
LRDockWidth=1898
Dockable=1
@ -661,12 +677,12 @@ State=0
Left=0
Top=23
Width=3820
Height=1424
Height=1648
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1424
TBDockHeight=1424
ClientHeight=1648
TBDockHeight=1648
LRDockWidth=3820
Dockable=1
StayOnTop=0
@ -685,11 +701,11 @@ State=0
Left=0
Top=23
Width=2000
Height=4529
Height=3419
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4529
ClientHeight=3419
TBDockHeight=7119
LRDockWidth=2000
Dockable=1
@ -699,21 +715,21 @@ ActiveTabID=ProjectManager
TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm
[DockSite3]
HostDockSite=DockLeftPanel
HostDockSite=LeftDockTabSet
DockSiteType=1
PercentageSizes=1
Create=1
Visible=1
Visible=0
Docked=1
State=0
Left=0
Top=23
Top=0
Width=1898
Height=3498
Height=7119
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=3498
ClientWidth=1773
ClientHeight=6693
TBDockHeight=7119
LRDockWidth=1898
Dockable=1
@ -731,13 +747,13 @@ Visible=1
Docked=1
State=0
Left=0
Top=454
Top=355
Width=2000
Height=4339
Height=5448
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4339
ClientHeight=5448
TBDockHeight=7119
LRDockWidth=2000
Dockable=1

View File

@ -1,10 +1,10 @@
[Stats]
EditorSecs=8825
DesignerSecs=233
InspectorSecs=236
CompileSecs=450273
OtherSecs=1279
EditorSecs=15680
DesignerSecs=1469
InspectorSecs=1128
CompileSecs=710437
OtherSecs=2298
StartTime=11/02/2017 10:51:15
RealKeys=0
EffectiveKeys=0
DebugSecs=2514
DebugSecs=7901

View File

@ -0,0 +1,152 @@
// ************************************************************************
// ***************************** 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 <hgourvest@gmail.com>
* 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 uHelloScheme;
{$I cef.inc}
interface
uses
{$IFDEF DELPHI16_UP}
System.Classes, WinApi.Windows, System.SysUtils,
{$ELSE}
Classes, Windows, SysUtils,
{$ENDIF}
uCEFInterfaces, uCEFTypes, uCEFResourceHandler;
type
THelloScheme = class(TCefResourceHandlerOwn)
private
FStream : TStringStream;
FMimeType : string;
FStatusText : string;
FStatus : Integer;
protected
function ProcessRequest(const request: ICefRequest; const callback: ICefCallback): Boolean; override;
procedure GetResponseHeaders(const response: ICefResponse; out responseLength: Int64; out redirectUrl: ustring); override;
function ReadResponse(const dataOut: Pointer; bytesToRead: Integer; var bytesRead: Integer; const callback: ICefCallback): Boolean; override;
public
constructor Create(const browser: ICefBrowser; const frame: ICefFrame; const schemeName: ustring; const request: ICefRequest); override;
destructor Destroy; override;
procedure AfterConstruction; override;
end;
implementation
constructor THelloScheme.Create(const browser : ICefBrowser;
const frame : ICefFrame;
const schemeName : ustring;
const request : ICefRequest);
begin
inherited Create(browser, frame, schemeName, request);
FStream := nil;
FStatus := 0;
FMimeType := '';
FStatusText := '';
end;
destructor THelloScheme.Destroy;
begin
if (FStream <> nil) then FreeAndNil(FStream);
inherited Destroy;
end;
procedure THelloScheme.AfterConstruction;
begin
inherited AfterConstruction;
FStream := TStringStream.Create;
end;
procedure THelloScheme.GetResponseHeaders(const response : ICefResponse;
out responseLength : Int64;
out redirectUrl : ustring);
begin
if (response <> nil) then
begin
response.Status := FStatus;
response.StatusText := FStatusText;
response.MimeType := FMimeType;
end;
if (FStream <> nil) then
responseLength := FStream.Size
else
responseLength := 0;
end;
function THelloScheme.ProcessRequest(const request : ICefRequest; const callback : ICefCallback): Boolean;
begin
Result := True;
FStatus := 200;
FStatusText := 'OK';
FMimeType := 'text/html';
if (FStream <> nil) and (request <> nil) then
begin
FStream.Clear;
FStream.WriteString('<html><head></head><body>Hello world!<br>' +
request.URL +
'</body></html>');
end;
if (callback <> nil) then callback.Cont;
end;
function THelloScheme.ReadResponse(const dataOut : Pointer;
bytesToRead : Integer;
var bytesRead : Integer;
const callback : ICefCallback): Boolean;
begin
if (FStream <> nil) and (DataOut <> nil) then
begin
FStream.Seek(0, soFromBeginning);
Result := True;
BytesRead := FStream.Read(DataOut^, BytesToRead);
if (callback <> nil) then callback.Cont;
end
else
Result := False;
end;
end.

View File

@ -109,30 +109,56 @@ object MiniBrowserFrm: TMiniBrowserFrm
object URLEditPnl: TPanel
Left = 133
Top = 0
Width = 956
Width = 915
Height = 41
Align = alClient
BevelOuter = bvNone
Padding.Top = 9
Padding.Right = 8
Padding.Bottom = 8
ShowCaption = False
TabOrder = 1
object URLEdt: TEdit
ExplicitWidth = 844
object URLCbx: TComboBox
Left = 0
Top = 9
Width = 948
Height = 24
Width = 915
Height = 21
Align = alClient
Font.Charset = DEFAULT_CHARSET
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
end
end
object ConfigPnl: TPanel
Left = 1048
Top = 0
Width = 41
Height = 41
Align = alRight
BevelOuter = bvNone
TabOrder = 2
object ConfigBtn: TButton
Left = 8
Top = 8
Width = 25
Height = 25
Caption = #8801
Font.Charset = ANSI_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Tahoma'
Font.Style = []
Font.Height = -17
Font.Name = 'Arial'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 0
OnKeyUp = URLEdtKeyUp
ExplicitHeight = 26
OnClick = ConfigBtnClick
end
end
end
@ -164,6 +190,7 @@ object MiniBrowserFrm: TMiniBrowserFrm
end>
end
object Chromium1: TChromium
OnTextResultAvailable = Chromium1TextResultAvailable
OnProcessMessageReceived = Chromium1ProcessMessageReceived
OnLoadingStateChange = Chromium1LoadingStateChange
OnBeforeContextMenu = Chromium1BeforeContextMenu
@ -175,4 +202,20 @@ object MiniBrowserFrm: TMiniBrowserFrm
Left = 424
Top = 352
end
object PopupMenu1: TPopupMenu
OnPopup = PopupMenu1Popup
Left = 664
Top = 104
object DevTools1: TMenuItem
Caption = 'DevTools'
OnClick = DevTools1Click
end
object N1: TMenuItem
Caption = '-'
end
object Preferences1: TMenuItem
Caption = 'Preferences...'
OnClick = Preferences1Click
end
end
end

View File

@ -44,24 +44,27 @@ interface
uses
{$IFDEF DELPHI16_UP}
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, System.Types, Vcl.ComCtrls,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, System.Types, Vcl.ComCtrls, Vcl.ClipBrd,
{$ELSE}
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls,
Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd,
{$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants;
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFTypes, uCEFConstants,
Vcl.Menus;
const
MINIBROWSER_CREATED = WM_APP + $100;
MINIBROWSER_SHOWDEVTOOLS = WM_APP + $101;
MINIBROWSER_HIDEDEVTOOLS = WM_APP + $102;
MINIBROWSER_COPYHTML = WM_APP + $103;
MINIBROWSER_HOMEPAGE = 'http://www.google.com';
MINIBROWSER_HOMEPAGE = 'https://www.google.com';
MINIBROWSER_CONTEXTMENU_SHOWDEVTOOLS = MENU_ID_USER_FIRST + 1;
MINIBROWSER_CONTEXTMENU_HIDEDEVTOOLS = MENU_ID_USER_FIRST + 2;
MINIBROWSER_CONTEXTMENU_SHOWJSALERT = MENU_ID_USER_FIRST + 3;
MINIBROWSER_CONTEXTMENU_SETJSEVENT = MENU_ID_USER_FIRST + 4;
MINIBROWSER_CONTEXTMENU_COPYHTML = MENU_ID_USER_FIRST + 5;
type
TMiniBrowserFrm = class(TForm)
@ -71,16 +74,20 @@ type
BackBtn: TButton;
ForwardBtn: TButton;
ReloadBtn: TButton;
URLEdt: TEdit;
CEFWindowParent1: TCEFWindowParent;
Chromium1: TChromium;
StopBtn: TButton;
DevTools: TCEFWindowParent;
Splitter1: TSplitter;
StatusBar1: TStatusBar;
URLCbx: TComboBox;
ConfigPnl: TPanel;
ConfigBtn: TButton;
PopupMenu1: TPopupMenu;
DevTools1: TMenuItem;
N1: TMenuItem;
Preferences1: TMenuItem;
procedure FormShow(Sender: TObject);
procedure URLEdtKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BackBtnClick(Sender: TObject);
procedure ForwardBtnClick(Sender: TObject);
procedure ReloadBtnClick(Sender: TObject);
@ -106,14 +113,27 @@ type
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1StatusMessage(Sender: TObject;
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);
protected
procedure ShowDevTools(aPoint : TPoint);
procedure AddURL(const aURL : string);
procedure ShowDevTools(aPoint : TPoint); overload;
procedure ShowDevTools; overload;
procedure HideDevTools;
procedure BrowserCreatedMsg(var aMessage : TMessage); message MINIBROWSER_CREATED;
procedure ShowDevToolsMsg(var aMessage : TMessage); message MINIBROWSER_SHOWDEVTOOLS;
procedure HideDevToolsMsg(var aMessage : TMessage); message MINIBROWSER_HIDEDEVTOOLS;
procedure CopyHTMLMsg(var aMessage : TMessage); message MINIBROWSER_COPYHTML;
public
end;
@ -125,6 +145,9 @@ implementation
{$R *.dfm}
uses
uPreferences;
procedure TMiniBrowserFrm.BackBtnClick(Sender: TObject);
begin
Chromium1.GoBack;
@ -143,7 +166,7 @@ end;
procedure TMiniBrowserFrm.Chromium1AddressChange(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
begin
URLEdt.Text := url;
AddURL(url);
end;
procedure TMiniBrowserFrm.Chromium1AfterCreated(Sender: TObject;
@ -158,7 +181,8 @@ procedure TMiniBrowserFrm.Chromium1BeforeContextMenu(Sender: TObject;
begin
model.AddSeparator;
model.AddItem(MINIBROWSER_CONTEXTMENU_SHOWJSALERT, 'Show JS Alert');
model.AddItem(MINIBROWSER_CONTEXTMENU_SETJSEVENT, 'Set mouseover event');
model.AddItem(MINIBROWSER_CONTEXTMENU_SETJSEVENT, 'Set mouseover event');
model.AddItem(MINIBROWSER_CONTEXTMENU_COPYHTML, 'Copy HTML to clipboard');
if DevTools.Visible then
model.AddItem(MINIBROWSER_CONTEXTMENU_HIDEDEVTOOLS, 'Hide DevTools')
@ -200,6 +224,9 @@ begin
'};'+
'app.mouseover(getpath(evt.target))}'+
')', 'about:blank', 0);
MINIBROWSER_CONTEXTMENU_COPYHTML :
PostMessage(Handle, MINIBROWSER_COPYHTML, 0, 0);
end;
end;
@ -231,6 +258,11 @@ begin
StatusBar1.Panels[0].Text := value;
end;
procedure TMiniBrowserFrm.Chromium1TextResultAvailable(Sender: TObject; const aText: string);
begin
clipboard.AsText := aText;
end;
procedure TMiniBrowserFrm.Chromium1TitleChange(Sender: TObject;
const browser: ICefBrowser; const title: ustring);
begin
@ -240,12 +272,6 @@ begin
caption := 'MiniBrowser';
end;
procedure TMiniBrowserFrm.URLEdtKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = 13) then Chromium1.LoadURL(URLEdt.Text);
end;
procedure TMiniBrowserFrm.FormShow(Sender: TObject);
begin
Chromium1.CreateBrowser(CEFWindowParent1, '');
@ -254,10 +280,17 @@ end;
procedure TMiniBrowserFrm.BrowserCreatedMsg(var aMessage : TMessage);
begin
NavControlPnl.Enabled := True;
URLEdt.Text := MINIBROWSER_HOMEPAGE;
AddURL(MINIBROWSER_HOMEPAGE);
Chromium1.LoadURL(MINIBROWSER_HOMEPAGE);
end;
procedure TMiniBrowserFrm.AddURL(const aURL : string);
begin
if (URLCbx.Items.IndexOf(aURL) < 0) then URLCbx.Items.Add(aURL);
URLCbx.Text := aURL;
end;
procedure TMiniBrowserFrm.ShowDevToolsMsg(var aMessage : TMessage);
var
TempPoint : TPoint;
@ -272,6 +305,77 @@ begin
HideDevTools;
end;
procedure TMiniBrowserFrm.PopupMenu1Popup(Sender: TObject);
begin
if DevTools.Visible then
DevTools1.Caption := 'Hide DevTools'
else
DevTools1.Caption := 'Show DevTools';
end;
procedure TMiniBrowserFrm.Preferences1Click(Sender: TObject);
begin
PreferencesFrm.ProxyTypeCbx.ItemIndex := Chromium1.ProxyType;
PreferencesFrm.ProxyServerEdt.Text := Chromium1.ProxyServer;
PreferencesFrm.ProxyPortEdt.Text := inttostr(Chromium1.ProxyPort);
PreferencesFrm.ProxyUsernameEdt.Text := Chromium1.ProxyUsername;
PreferencesFrm.ProxyPasswordEdt.Text := Chromium1.ProxyPassword;
PreferencesFrm.ProxyScriptURLEdt.Text := Chromium1.ProxyScriptURL;
PreferencesFrm.ProxyByPassListEdt.Text := Chromium1.ProxyByPassList;
PreferencesFrm.HeaderNameEdt.Text := Chromium1.CustomHeaderName;
PreferencesFrm.HeaderValueEdt.Text := Chromium1.CustomHeaderValue;
if (PreferencesFrm.ShowModal = mrOk) then
begin
Chromium1.ProxyType := PreferencesFrm.ProxyTypeCbx.ItemIndex;
Chromium1.ProxyServer := PreferencesFrm.ProxyServerEdt.Text;
Chromium1.ProxyPort := strtoint(PreferencesFrm.ProxyPortEdt.Text);
Chromium1.ProxyUsername := PreferencesFrm.ProxyUsernameEdt.Text;
Chromium1.ProxyPassword := PreferencesFrm.ProxyPasswordEdt.Text;
Chromium1.ProxyScriptURL := PreferencesFrm.ProxyScriptURLEdt.Text;
Chromium1.ProxyByPassList := PreferencesFrm.ProxyByPassListEdt.Text;
Chromium1.CustomHeaderName := PreferencesFrm.HeaderNameEdt.Text;
Chromium1.CustomHeaderValue := PreferencesFrm.HeaderValueEdt.Text;
Chromium1.UpdatePreferences;
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;
begin
TempPoint.x := ConfigBtn.left;
TempPoint.y := ConfigBtn.top + ConfigBtn.Height;
TempPoint := ConfigPnl.ClientToScreen(TempPoint);
PopupMenu1.Popup(TempPoint.x, TempPoint.y);
end;
procedure TMiniBrowserFrm.CopyHTMLMsg(var aMessage : TMessage);
begin
Chromium1.RetrieveHTML;
end;
procedure TMiniBrowserFrm.DevTools1Click(Sender: TObject);
begin
if DevTools.Visible then
HideDevTools
else
ShowDevTools;
end;
procedure TMiniBrowserFrm.ShowDevTools(aPoint : TPoint);
begin
Splitter1.Visible := True;
@ -280,6 +384,15 @@ begin
Chromium1.ShowDevTools(aPoint, DevTools);
end;
procedure TMiniBrowserFrm.ShowDevTools;
var
TempPoint : TPoint;
begin
TempPoint.x := low(integer);
TempPoint.y := low(integer);
ShowDevTools(TempPoint);
end;
procedure TMiniBrowserFrm.HideDevTools;
begin
Chromium1.CloseDevTools(DevTools);

View File

@ -0,0 +1,193 @@
object PreferencesFrm: TPreferencesFrm
Left = 0
Top = 0
BorderIcons = [biSystemMenu]
BorderStyle = bsSingle
Caption = 'Preferences'
ClientHeight = 363
ClientWidth = 428
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
FormStyle = fsStayOnTop
OldCreateOrder = False
Position = poScreenCenter
PixelsPerInch = 96
TextHeight = 13
object Button1: TButton
Left = 232
Top = 330
Width = 75
Height = 25
Caption = 'Ok'
ModalResult = 1
TabOrder = 2
end
object Button2: TButton
Left = 345
Top = 330
Width = 75
Height = 25
Caption = 'Cancel'
ModalResult = 2
TabOrder = 3
end
object GroupBox1: TGroupBox
Left = 8
Top = 8
Width = 412
Height = 223
Caption = ' Proxy '
TabOrder = 0
object ProxyTypeLbl: TLabel
Left = 12
Top = 27
Width = 24
Height = 13
Caption = 'Type'
end
object ProxyServerLbl: TLabel
Left = 12
Top = 56
Width = 32
Height = 13
Caption = 'Server'
end
object ProxyPortLbl: TLabel
Left = 12
Top = 83
Width = 20
Height = 13
Caption = 'Port'
end
object ProxyUsernameLbl: TLabel
Left = 12
Top = 110
Width = 48
Height = 13
Caption = 'Username'
end
object ProxyPasswordLbl: TLabel
Left = 12
Top = 137
Width = 46
Height = 13
Caption = 'Password'
end
object ProxyScriptURLLbl: TLabel
Left = 12
Top = 164
Width = 49
Height = 13
Caption = 'Script URL'
end
object ProxyByPassListLbl: TLabel
Left = 12
Top = 191
Width = 50
Height = 13
Caption = 'ByPass list'
end
object ProxyTypeCbx: TComboBox
Left = 108
Top = 24
Width = 292
Height = 21
Style = csDropDownList
ItemIndex = 0
TabOrder = 0
Text = 'Direct'
Items.Strings = (
'Direct'
'Autodetect'
'System'
'Fixed servers'
'PAC script')
end
object ProxyServerEdt: TEdit
Left = 108
Top = 53
Width = 292
Height = 21
TabOrder = 1
end
object ProxyPortEdt: TEdit
Left = 108
Top = 80
Width = 292
Height = 21
MaxLength = 5
NumbersOnly = True
TabOrder = 2
Text = '80'
end
object ProxyUsernameEdt: TEdit
Left = 108
Top = 107
Width = 292
Height = 21
TabOrder = 3
end
object ProxyPasswordEdt: TEdit
Left = 108
Top = 134
Width = 292
Height = 21
PasswordChar = '*'
TabOrder = 4
end
object ProxyScriptURLEdt: TEdit
Left = 108
Top = 161
Width = 292
Height = 21
TabOrder = 5
end
object ProxyByPassListEdt: TEdit
Left = 108
Top = 188
Width = 292
Height = 21
TabOrder = 6
end
end
object GroupBox2: TGroupBox
Left = 8
Top = 237
Width = 412
Height = 84
Caption = ' Custom header '
TabOrder = 1
object HeaderNameLbl: TLabel
Left = 12
Top = 26
Width = 27
Height = 13
Caption = 'Name'
end
object HeaderValueLbl: TLabel
Left = 12
Top = 53
Width = 26
Height = 13
Caption = 'Value'
end
object HeaderNameEdt: TEdit
Left = 108
Top = 23
Width = 292
Height = 21
TabOrder = 0
end
object HeaderValueEdt: TEdit
Left = 108
Top = 50
Width = 292
Height = 21
TabOrder = 1
end
end
end

View File

@ -0,0 +1,83 @@
// ************************************************************************
// ***************************** 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 <hgourvest@gmail.com>
* 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 uPreferences;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;
type
TPreferencesFrm = class(TForm)
Button1: TButton;
Button2: TButton;
GroupBox1: TGroupBox;
ProxyTypeCbx: TComboBox;
ProxyTypeLbl: TLabel;
ProxyServerLbl: TLabel;
ProxyServerEdt: TEdit;
ProxyPortLbl: TLabel;
ProxyPortEdt: TEdit;
ProxyUsernameLbl: TLabel;
ProxyUsernameEdt: TEdit;
ProxyPasswordLbl: TLabel;
ProxyPasswordEdt: TEdit;
ProxyScriptURLEdt: TEdit;
ProxyScriptURLLbl: TLabel;
ProxyByPassListEdt: TEdit;
ProxyByPassListLbl: TLabel;
GroupBox2: TGroupBox;
HeaderNameEdt: TEdit;
HeaderNameLbl: TLabel;
HeaderValueEdt: TEdit;
HeaderValueLbl: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
PreferencesFrm: TPreferencesFrm;
implementation
{$R *.dfm}
end.

View File

@ -1,5 +1,5 @@
[Closed Files]
File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,1,57,51,0,0,,
File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromiumWindow.pas',0,1,55,70,89,0,0,,
File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,1,30,47,0,0,,
File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,205,3,222,0,0,,
File_3=TSourceModule,'V:\dcef3-2883\src\ceflib.pas',0,1,32,2,32,0,0,,
@ -8,13 +8,11 @@ File_5=TSourceModule,'V:\dcef3-2883\src\cef.inc',0,1,82,7,119,0,0,,
File_6=TSourceModule,'V:\dcef3-2883\src\cefgui.pas',0,1,1,1,1,0,0,,
File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,199,23,221,0,0,,
File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFClient.pas',0,1,45,32,52,0,0,,
File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFBase.pas',0,1,136,89,152,0,0,,
[Modules]
Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas
Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\SimpleBrowser.dproj
Module2=default.htm
Count=3
Module1=default.htm
Count=2
EditWindowCount=1
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas]
@ -22,18 +20,14 @@ ModuleType=TSourceModule
FormState=1
FormOnTop=0
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\SimpleBrowser.dproj]
ModuleType=TBaseProject
[default.htm]
ModuleType=TURLModule
[EditWindow0]
ViewCount=3
ViewCount=2
CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas
View0=0
View1=1
View2=2
PercentageSizes=1
Create=1
Visible=1
@ -52,15 +46,16 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
TopPanelSize=0
LeftPanelSize=0
RightPanelSize=2000
RightPanelClients=DockSite2,DockSite4
RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF
RightPanelClients=DockSite2
RightPanelData=00000800010100000000AA1900000000000001D0070000000000000100000000A123000009000000446F636B5369746532FFFFFFFF
BottomPanelSize=0
BottomPanelClients=DockSite1,MessageView
BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF
BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D3B36000000000000020F06000000000000FFFFFFFF
BottomMiddlePanelSize=0
BottomMiddlePanelClients=DockSite0,GraphDrawingModel
BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F306000000000000FFFFFFFF
TabDockLeftClients=PropertyInspector=0,DockSite3=1
TabDockRightClients=DockSite4=0
[View0]
CustomEditViewType=TWelcomePageView
@ -68,20 +63,9 @@ WelcomePageURL=bds:/default.htm
[View1]
CustomEditViewType=TEditView
Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\SimpleBrowser.dpr
CursorX=3
CursorY=46
TopLine=13
LeftCol=1
Elisions=
Bookmarks=
EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\SimpleBrowser.dpr
[View2]
CustomEditViewType=TEditView
Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleBrowser\uSimpleBrowser.pas
CursorX=54
CursorY=57
CursorX=69
CursorY=68
TopLine=31
LeftCol=1
Elisions=
@ -102,11 +86,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 +134,11 @@ State=0
Left=0
Top=0
Width=2000
Height=4226
Height=8868
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4226
ClientHeight=8868
TBDockHeight=5897
LRDockWidth=2352
Dockable=1
@ -167,14 +151,14 @@ Visible=0
Docked=1
State=0
Left=0
Top=0
Top=23
Width=2773
Height=1424
Height=1345
MaxLeft=-1
MaxTop=-1
ClientWidth=2773
ClientHeight=1424
TBDockHeight=1424
ClientHeight=1345
TBDockHeight=1345
LRDockWidth=2773
Dockable=1
StayOnTop=0
@ -187,12 +171,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
@ -302,12 +286,12 @@ State=0
Left=78
Top=386
Width=1898
Height=7119
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=7119
TBDockHeight=7119
ClientWidth=1773
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
StayOnTop=0
@ -357,8 +341,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 +366,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 +385,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
@ -424,11 +408,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
@ -443,11 +427,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
@ -565,11 +549,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,11 +575,11 @@ State=0
Left=0
Top=0
Width=1773
Height=6693
Height=6738
MaxLeft=-1
MaxTop=-1
ClientWidth=1773
ClientHeight=6693
ClientHeight=6738
TBDockHeight=3677
LRDockWidth=1898
Dockable=1
@ -677,12 +661,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
@ -701,12 +685,12 @@ State=0
Left=0
Top=23
Width=2000
Height=4529
Height=9170
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4529
TBDockHeight=7119
ClientHeight=9170
TBDockHeight=7164
LRDockWidth=2000
Dockable=1
StayOnTop=0
@ -725,12 +709,12 @@ State=0
Left=0
Top=0
Width=1898
Height=7119
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=1773
ClientHeight=6693
TBDockHeight=7119
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
StayOnTop=0
@ -739,22 +723,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=2230
EditorSecs=2475
DesignerSecs=267
InspectorSecs=136
CompileSecs=89840
OtherSecs=367
CompileSecs=119220
OtherSecs=449
StartTime=22/01/2017 14:51:01
RealKeys=0
EffectiveKeys=0
DebugSecs=404
DebugSecs=571

View File

@ -1,39 +1,27 @@
[Closed Files]
File_0=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Graphics32\GR32_Image.pas',0,1,1,35,23,0,0,,
File_1=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Graphics32\Readme.txt',0,1,1,63,6,0,0,,
File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,1,39,51,0,0,,
File_3=TSourceModule,'c:\program files\embarcadero\studio\17.0\CEF4Delphi\uCEFTypes.pas',0,1,1,1,1,0,0,,
File_4=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\misc\uPopUpBrowserCEFFrm.pas',0,1,121,19,154,0,0,,
File_5=TSourceModule,'c:\program files\embarcadero\studio\17.0\CEF4Delphi\uCEFChromium.pas',0,1,1131,67,1155,0,0,,
File_6=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,6113,1,6135,0,0,,
File_7=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\base_components\uHTTPCEFPanel.pas',0,1,652,71,689,0,0,,
File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.pas',0,1,31,3,33,0,0,,
File_9=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\base_components\uBrowserTabBody.pas',0,1,2182,21,2205,0,0,,
File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas',0,1,13,49,53,0,0,,
File_1=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Graphics32\GR32_Image.pas',0,1,1,35,23,0,0,,
File_2=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Graphics32\Readme.txt',0,1,1,63,6,0,0,,
File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,1,39,51,0,0,,
File_4=TSourceModule,'c:\program files\embarcadero\studio\17.0\CEF4Delphi\uCEFTypes.pas',0,1,1,1,1,0,0,,
File_5=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\misc\uPopUpBrowserCEFFrm.pas',0,1,121,19,154,0,0,,
File_6=TSourceModule,'c:\program files\embarcadero\studio\17.0\CEF4Delphi\uCEFChromium.pas',0,1,1131,67,1155,0,0,,
File_7=TSourceModule,'c:\program files\embarcadero\studio\17.0\SOURCE\VCL\Vcl.Controls.pas',0,1,6113,1,6135,0,0,,
File_8=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\base_components\uHTTPCEFPanel.pas',0,1,652,71,689,0,0,,
File_9=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi demos\SimpleBrowser\uSimpleBrowser.pas',0,1,31,3,33,0,0,,
[Modules]
Module0=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas
Module1=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\SimpleOSRBrowser.dproj
Module2=default.htm
Count=3
Module0=default.htm
Count=1
EditWindowCount=1
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas]
ModuleType=TSourceModule
FormState=1
FormOnTop=0
[C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\SimpleOSRBrowser.dproj]
ModuleType=TBaseProject
[default.htm]
ModuleType=TURLModule
[EditWindow0]
ViewCount=3
CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas
ViewCount=1
CurrentView=0
View0=0
View1=1
View2=2
PercentageSizes=1
Create=1
Visible=1
@ -52,42 +40,21 @@ BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
TopPanelSize=0
LeftPanelSize=0
RightPanelSize=2000
RightPanelClients=DockSite2,DockSite4
RightPanelData=000008000101000000001E1500000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000511D000009000000446F636B5369746534FFFFFFFF
BottomPanelSize=1551
RightPanelClients=DockSite2
RightPanelData=00000800010100000000551500000000000001D00700000000000001000000009D1D000009000000446F636B5369746532FFFFFFFF
BottomPanelSize=1475
BottomPanelClients=DockSite1,MessageView
BottomPanelData=0000080001020100000009000000446F636B53697465313B36000000000000020F0600000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF
BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002C30500000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF
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\demos\SimpleOSRBrowser\SimpleOSRBrowser.dpr
CursorX=1
CursorY=47
TopLine=1
LeftCol=1
Elisions=
Bookmarks=
EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\SimpleOSRBrowser.dpr
[View2]
CustomEditViewType=TEditView
Module=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas
CursorX=49
CursorY=53
TopLine=1
LeftCol=1
Elisions=
Bookmarks=
EditViewName=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\demos\SimpleOSRBrowser\uSimpleOSRBrowser.pas
[Watches]
Count=0
@ -102,11 +69,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=213
LRDockWidth=13602
Dockable=1
@ -150,11 +117,11 @@ State=0
Left=0
Top=0
Width=2000
Height=4226
Height=7276
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4226
ClientHeight=7276
TBDockHeight=5897
LRDockWidth=2352
Dockable=1
@ -169,12 +136,12 @@ State=0
Left=0
Top=23
Width=10000
Height=1345
Height=1267
MaxLeft=-1
MaxTop=-1
ClientWidth=10000
ClientHeight=1345
TBDockHeight=1345
ClientHeight=1267
TBDockHeight=1267
LRDockWidth=2773
Dockable=1
StayOnTop=0
@ -187,12 +154,12 @@ Docked=1
State=0
Left=0
Top=0
Width=2000
Height=2668
Width=1875
Height=6738
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=2668
ClientWidth=1875
ClientHeight=6738
TBDockHeight=7152
LRDockWidth=2000
Dockable=1
@ -302,12 +269,12 @@ State=0
Left=78
Top=386
Width=1898
Height=7119
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=7119
TBDockHeight=7119
ClientWidth=1773
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
StayOnTop=0
@ -357,8 +324,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 +349,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=415
LRDockWidth=4953
Dockable=1
@ -401,11 +368,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=213
LRDockWidth=7406
Dockable=1
@ -424,11 +391,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=1536
LRDockWidth=3484
Dockable=1
@ -443,11 +410,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=2063
LRDockWidth=3484
Dockable=1
@ -565,11 +532,11 @@ State=0
Left=0
Top=0
Width=3820
Height=1043
Height=964
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1043
ClientHeight=964
TBDockHeight=1547
LRDockWidth=8742
Dockable=1
@ -591,11 +558,11 @@ State=0
Left=0
Top=0
Width=1773
Height=6693
Height=6738
MaxLeft=-1
MaxTop=-1
ClientWidth=1773
ClientHeight=6693
ClientHeight=6738
TBDockHeight=3677
LRDockWidth=1898
Dockable=1
@ -677,12 +644,12 @@ State=0
Left=0
Top=23
Width=3820
Height=1345
Height=1267
MaxLeft=-1
MaxTop=-1
ClientWidth=3820
ClientHeight=1345
TBDockHeight=1345
ClientHeight=1267
TBDockHeight=1267
LRDockWidth=3820
Dockable=1
StayOnTop=0
@ -701,12 +668,12 @@ State=0
Left=0
Top=23
Width=2000
Height=4529
Height=7578
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4529
TBDockHeight=7119
ClientHeight=7578
TBDockHeight=7164
LRDockWidth=2000
Dockable=1
StayOnTop=0
@ -725,12 +692,12 @@ State=0
Left=0
Top=0
Width=1898
Height=7119
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=1773
ClientHeight=6693
TBDockHeight=7119
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
StayOnTop=0
@ -739,22 +706,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=2668
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=2668
TBDockHeight=7119
ClientWidth=1875
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=2000
Dockable=1
StayOnTop=0

View File

@ -1,10 +1,10 @@
[Stats]
EditorSecs=2173
EditorSecs=2193
DesignerSecs=210
InspectorSecs=61
CompileSecs=101649
OtherSecs=284
CompileSecs=119428
OtherSecs=334
StartTime=22/01/2017 17:35:20
RealKeys=0
EffectiveKeys=0
DebugSecs=425
DebugSecs=466

View File

@ -1,27 +1,48 @@
[Closed Files]
File_0=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFApplication.pas',0,1,262,53,297,0,0,,
File_1=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas',0,1,2030,67,2056,0,0,,{1
File_2=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFMiscFunctions.pas',0,1,191,46,218,0,0,,
File_3=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFTypes.pas',0,1,216,3,246,0,0,,
File_4=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFLibFunctions.pas',0,1,40,3,69,0,0,,
File_5=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFRequestContextHandler.pas',0,1,31,43,57,0,0,,
File_6=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFRequestContext.pas',0,1,59,16,65,0,0,,
File_7=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFCookieManager.pas',0,1,49,3,58,0,0,,
File_8=TSourceModule,'C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFInterfaces.pas',0,1,877,20,897,0,0,,
File_9=TSourceModule,'C:\Program Files\Embarcadero\Studio\17.0\Componentes\misc\uMiscFunctions.pas',0,1,6055,26,6083,0,0,,
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,,
[Modules]
Module0=default.htm
Count=1
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
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=1
CurrentView=0
ViewCount=4
CurrentEditView=C:\Users\usuario\Documents\Embarcadero\Studio\Projects\CEF4Delphi\source\uCEFChromium.pas
View0=0
View1=1
View2=2
View3=3
PercentageSizes=1
Create=1
Visible=1
@ -38,23 +59,56 @@ ClientHeight=9428
DockedToMainForm=1
BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
TopPanelSize=0
LeftPanelSize=1898
LeftPanelClients=PropertyInspector,DockSite3
LeftPanelData=00000800010100000000AA19000000000000016A0700000000000001000000005D0E000009000000446F636B53697465330100000000A12300001100000050726F7065727479496E73706563746F72FFFFFFFF
LeftPanelSize=0
RightPanelSize=2000
RightPanelClients=DockSite2,DockSite4
RightPanelData=00000800010100000000AA1900000000000001D00700000000000001000000004312000009000000446F636B53697465320100000000A123000009000000446F636B5369746534FFFFFFFF
BottomPanelSize=0
RightPanelClients=DockSite2
RightPanelData=00000800010100000000DE1300000000000001D0070000000000000100000000951B000009000000446F636B5369746532FFFFFFFF
BottomPanelSize=1996
BottomPanelClients=DockSite1,MessageView
BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1234000000000000022506000000000000FFFFFFFF
BottomPanelData=0000080001020100000009000000446F636B53697465313B3600000000000002CC0700000000000001000000003B3600000F0000004D65737361676556696577466F726DFFFFFFFF
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
@ -117,11 +171,11 @@ State=0
Left=0
Top=0
Width=2000
Height=4226
Height=6738
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4226
ClientHeight=6738
TBDockHeight=5897
LRDockWidth=2352
Dockable=1
@ -130,18 +184,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=1805
MaxLeft=-1
MaxTop=-1
ClientWidth=2773
ClientHeight=1424
TBDockHeight=1424
ClientWidth=10000
ClientHeight=1805
TBDockHeight=1805
LRDockWidth=2773
Dockable=1
StayOnTop=0
@ -209,8 +263,8 @@ Create=1
Visible=0
Docked=1
State=0
Left=-148
Top=-137
Left=-8
Top=-30
Width=1844
Height=3139
MaxLeft=-1
@ -263,17 +317,17 @@ StayOnTop=0
[PropertyInspector]
PercentageSizes=1
Create=1
Visible=1
Visible=0
Docked=1
State=0
Left=0
Top=362
Left=78
Top=386
Width=1898
Height=5370
Height=7164
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=5370
ClientWidth=1773
ClientHeight=6738
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
@ -289,11 +343,11 @@ State=0
Left=0
Top=0
Width=2000
Height=6861
Height=6816
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=6861
ClientHeight=6816
TBDockHeight=5964
LRDockWidth=2508
Dockable=1
@ -305,8 +359,8 @@ Create=1
Visible=0
Docked=1
State=0
Left=-898
Top=-137
Left=-946
Top=1
Width=2844
Height=6200
MaxLeft=-1
@ -324,8 +378,8 @@ Create=1
Visible=0
Docked=1
State=0
Left=-1026
Top=-137
Left=-1152
Top=243
Width=273
Height=359
MaxLeft=-1
@ -429,11 +483,11 @@ State=0
Left=0
Top=0
Width=2336
Height=1177
Height=942
MaxLeft=-1
MaxTop=-1
ClientWidth=2336
ClientHeight=1177
ClientHeight=942
TBDockHeight=2321
LRDockWidth=2820
Dockable=1
@ -494,11 +548,11 @@ State=0
Left=0
Top=0
Width=2000
Height=6861
Height=6816
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=6861
ClientHeight=6816
TBDockHeight=4888
LRDockWidth=7148
Dockable=1
@ -510,8 +564,8 @@ Create=1
Visible=0
Docked=1
State=0
Left=0
Top=0
Left=249
Top=709
Width=2859
Height=3206
MaxLeft=-1
@ -558,11 +612,11 @@ State=0
Left=0
Top=0
Width=1898
Height=3498
Height=7018
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=3498
ClientHeight=7018
TBDockHeight=3677
LRDockWidth=1898
Dockable=1
@ -577,11 +631,11 @@ State=0
Left=0
Top=0
Width=2000
Height=6861
Height=6816
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=6861
ClientHeight=6816
TBDockHeight=4888
LRDockWidth=5305
Dockable=1
@ -642,7 +696,7 @@ Visible=0
Docked=1
State=0
Left=0
Top=0
Top=23
Width=3820
Height=1424
MaxLeft=-1
@ -668,12 +722,12 @@ State=0
Left=0
Top=23
Width=2000
Height=4529
Height=7040
MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4529
TBDockHeight=7164
ClientHeight=7040
TBDockHeight=7119
LRDockWidth=2000
Dockable=1
StayOnTop=0
@ -682,21 +736,21 @@ ActiveTabID=ProjectManager
TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview,TFileExplorerForm
[DockSite3]
HostDockSite=DockLeftPanel
HostDockSite=LeftDockTabSet
DockSiteType=1
PercentageSizes=1
Create=1
Visible=1
Visible=0
Docked=1
State=0
Left=0
Top=23
Left=1
Top=24
Width=1898
Height=3498
Height=7018
MaxLeft=-1
MaxTop=-1
ClientWidth=1898
ClientHeight=3498
ClientHeight=7018
TBDockHeight=7164
LRDockWidth=1898
Dockable=1
@ -706,11 +760,11 @@ 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
@ -721,7 +775,7 @@ MaxLeft=-1
MaxTop=-1
ClientWidth=2000
ClientHeight=4339
TBDockHeight=7164
TBDockHeight=7119
LRDockWidth=2000
Dockable=1
StayOnTop=0

View File

@ -1,9 +1,9 @@
[Stats]
EditorSecs=39830
EditorSecs=59267
DesignerSecs=14
InspectorSecs=9
CompileSecs=812456
OtherSecs=4166
CompileSecs=1013650
OtherSecs=5108
StartTime=22/01/2017 10:49:52
RealKeys=0
EffectiveKeys=0

View File

@ -104,6 +104,9 @@ type
FCustomCommandLines : TStringList;
FCustomCommandLineValues : TStringList;
FFlashEnabled : boolean;
FEnableSpellingService : boolean;
FEnableMediaStream : boolean;
FEnableSpeechInput : boolean;
FCheckCEFFiles : boolean;
FLibLoaded : boolean;
FChromeVersionInfo : TFileVersionInfo;
@ -223,6 +226,9 @@ type
property DeleteCache : boolean read FDeleteCache write FDeleteCache;
property DeleteCookies : boolean read FDeleteCookies write FDeleteCookies;
property FlashEnabled : boolean read FFlashEnabled write FFlashEnabled;
property EnableSpellingService : boolean read FEnableSpellingService write FEnableSpellingService;
property EnableMediaStream : boolean read FEnableMediaStream write FEnableMediaStream;
property EnableSpeechInput : boolean read FEnableSpeechInput write FEnableSpeechInput;
property CheckCEFFiles : boolean read FCheckCEFFiles write FCheckCEFFiles;
property ChromeMajorVer : uint16 read FChromeVersionInfo.MajorVer;
property ChromeMinorVer : uint16 read FChromeVersionInfo.MinorVer;
@ -290,7 +296,7 @@ uses
const
CEF_SUPPORTED_VERSION_MAJOR = 3;
CEF_SUPPORTED_VERSION_MINOR = 2924;
CEF_SUPPORTED_VERSION_RELEASE = 1571;
CEF_SUPPORTED_VERSION_RELEASE = 1575;
CEF_SUPPORTED_VERSION_BUILD = 0;
CEF_CHROMEELF_VERSION_MAJOR = 56;
@ -340,6 +346,9 @@ begin
FApp := nil;
FAppIntf := nil;
FFlashEnabled := True;
FEnableSpellingService := True;
FEnableMediaStream := True;
FEnableSpeechInput := True;
FCustomCommandLines := nil;
FCustomCommandLineValues := nil;
FCheckCEFFiles := True;
@ -843,6 +852,10 @@ begin
commandLine.AppendSwitch('--enable-system-flash');
end;
commandLine.AppendSwitchWithValue('--enable-spelling-service', IntToStr(Ord(FEnableSpellingService)));
commandLine.AppendSwitchWithValue('--enable-media-stream', IntToStr(Ord(FEnableMediaStream)));
commandLine.AppendSwitchWithValue('--enable-speech-input', IntToStr(Ord(FEnableSpeechInput)));
if (FCustomCommandLines <> nil) and
(FCustomCommandLineValues <> nil) and
(FCustomCommandLines.Count = FCustomCommandLineValues.Count) then

View File

@ -74,7 +74,6 @@ type
FFontOptions : TChromiumFontOptions;
FPDFPrintOptions : TPDFPrintOptions;
FDefaultEncoding : ustring;
FPrefs : TStringList;
FProxyType : integer;
FProxyServer : string;
FProxyPort : integer;
@ -83,7 +82,6 @@ type
FProxyScriptURL : string;
FProxyByPassList : string;
FUpdatePreferences : boolean;
FGetPreferences : boolean;
FCustomHeaderName : string;
FCustomHeaderValue : string;
FAddCustomHeader : boolean;
@ -95,6 +93,7 @@ type
FCMStoragePath : ustring;
FZoomStep : byte;
FWindowName : string;
FPrefsFileName : string;
FIsOSR : boolean;
FInitialized : boolean;
FClosing : boolean;
@ -200,7 +199,7 @@ type
// Custom
FOnTextResultAvailable : TOnTextResultAvailableEvent;
FOnPdfPrintFinished : TOnPdfPrintFinishedEvent;
FOnPrefsAvailable : TOnTextResultAvailableEvent;
FOnPrefsAvailable : TNotifyEvent;
FOnCookiesDeleted : TOnCookiesDeletedEvent;
FOnDocumentAvailable : TOnDocumentAvailableEvent;
@ -252,7 +251,6 @@ type
procedure GetSettings(var aSettings : TCefBrowserSettings);
procedure GetPrintPDFSettings(var aSettings : TCefPdfPrintSettings; const aTitle, aURL : string);
procedure UpdateAllPreferences;
function UpdateProxyPrefs : boolean;
function UpdatePreference(const aName : string; aValue : boolean) : boolean; overload;
function UpdatePreference(const aName : string; aValue : integer) : boolean; overload;
@ -272,7 +270,6 @@ type
procedure PrefsAvailableMsg(var aMessage : TMessage);
function GetParentForm : TCustomForm;
procedure ApplyZoomStep;
function GetAllPreferences : boolean;
function SendCompMessage(aMsg : cardinal; wParam : cardinal = 0; lParam : integer = 0) : boolean;
procedure WndProc(var aMessage: TMessage);
@ -379,13 +376,16 @@ type
function CreateBrowser(const aBrowserParent : TWinControl = nil; const aWindowName : string = '') : boolean;
procedure CloseBrowser(aForceClose : boolean);
procedure DOMVisitorVisit(const document: ICefDomDocument);
procedure CookiesDeleted(numDeleted : integer);
procedure GetHTML;
procedure VisitDOM;
procedure PdfPrintFinished(aResultOK : boolean);
procedure TextResultAvailable(const aText : string);
procedure ExecuteJavaScript(const aCode, aScriptURL : ustring; aStartLine : integer = 0);
// Internal procedures.
// Only tasks, visitors or callbacks should use them in the right thread/process.
procedure Internal_DOMVisit(const document: ICefDomDocument);
procedure Internal_CookiesDeleted(numDeleted : integer);
procedure Internal_GetHTML;
procedure Internal_VisitDOM;
procedure Internal_PdfPrintFinished(aResultOK : boolean);
procedure Internal_TextResultAvailable(const aText : string);
procedure Internal_UpdatePreferences;
procedure Internal_SavePreferences;
procedure LoadURL(const aURL : ustring);
procedure LoadString(const aString : ustring; const aURL : ustring = '');
@ -400,6 +400,9 @@ type
procedure DeleteCookies;
procedure RetrieveDOMDocument;
procedure RetrieveHTML;
procedure ExecuteJavaScript(const aCode, aScriptURL : ustring; aStartLine : integer = 0);
procedure UpdatePreferences;
procedure SavePreferences(const aFileName : string);
procedure ShowDevTools(inspectElementAt: TPoint; const aDevTools : TWinControl);
procedure CloseDevTools(const aDevTools : TWinControl = nil);
@ -462,7 +465,6 @@ type
property WindowHandle : THandle read GetWindowHandle;
property FrameIsFocused : boolean read GetFrameIsFocused;
property Initialized : boolean read GetInitialized;
property GetPreferences : boolean read FGetPreferences write FGetPreferences;
property CookiePrefs : integer read FCookiePrefs write SetCookiePrefs;
property ImagesPrefs : integer read FImagesPrefs write SetImagesPrefs;
property CMStoragePath : ustring read FCMStoragePath write SetCMStoragePath;
@ -490,7 +492,7 @@ type
published
property OnTextResultAvailable : TOnTextResultAvailableEvent read FOnTextResultAvailable write FOnTextResultAvailable;
property OnPdfPrintFinished : TOnPdfPrintFinishedEvent read FOnPdfPrintFinished write FOnPdfPrintFinished;
property OnPrefsAvailable : TOnTextResultAvailableEvent read FOnPrefsAvailable write FOnPrefsAvailable;
property OnPrefsAvailable : TNotifyEvent read FOnPrefsAvailable write FOnPrefsAvailable;
property OnCookiesDeleted : TOnCookiesDeletedEvent read FOnCookiesDeleted write FOnCookiesDeleted;
property OnDocumentAvailable : TOnDocumentAvailableEvent read FOnDocumentAvailable write FOnDocumentAvailable;
@ -620,11 +622,10 @@ begin
FCookiDeletercb := nil;
FDOMVisitor := nil;
FPDFPrintOptions := nil;
FPrefs := nil;
FUpdatePreferences := False;
FGetPreferences := False;
FCustomHeaderName := '';
FCustomHeaderValue := '';
FPrefsFileName := '';
FAddCustomHeader := False;
FDoNotTrack := True;
FSendReferrer := True;
@ -687,7 +688,6 @@ begin
if (FFontOptions <> nil) then FreeAndNil(FFontOptions);
if (FOptions <> nil) then FreeAndNil(FOptions);
if (FPDFPrintOptions <> nil) then FreeAndNil(FPDFPrintOptions);
if (FPrefs <> nil) then FreeAndNil(FPrefs);
except
on e : exception do
OutputDebugMessage('TChromium.Destroy error: ' + e.Message);
@ -708,7 +708,6 @@ begin
FOptions := TChromiumOptions.Create;
FFontOptions := TChromiumFontOptions.Create;
FPDFPrintOptions := TPDFPrintOptions.Create;
FPrefs := TStringList.Create;
end;
except
on e : exception do
@ -932,7 +931,7 @@ begin
end;
end;
procedure TChromium.VisitDOM;
procedure TChromium.Internal_VisitDOM;
var
TempFrame : ICefFrame;
begin
@ -949,7 +948,7 @@ begin
end;
except
on e : exception do
OutputDebugMessage('TChromium.VisitDOM error: ' + e.Message);
OutputDebugMessage('TChromium.Internal_VisitDOM error: ' + e.Message);
end;
end;
@ -1404,7 +1403,7 @@ procedure TChromium.SetCookiePrefs(aValue : integer);
begin
if (FCookiePrefs <> aValue) then
begin
FCookiePrefs := aValue;
FCookiePrefs := aValue;
FUpdatePreferences := True;
end;
end;
@ -1413,7 +1412,7 @@ procedure TChromium.SetImagesPrefs(aValue : integer);
begin
if (FImagesPrefs <> aValue) then
begin
FImagesPrefs := aValue;
FImagesPrefs := aValue;
FUpdatePreferences := True;
end;
end;
@ -1510,7 +1509,7 @@ begin
CookieManager.SetStoragePath(FCMStoragePath, False, nil);
end;
procedure TChromium.GetHTML;
procedure TChromium.Internal_GetHTML;
var
TempFrame : ICefFrame;
begin
@ -1559,6 +1558,29 @@ begin
end;
end;
procedure TChromium.UpdatePreferences;
var
TempTask: ICefTask;
begin
if Initialized then
begin
TempTask := TCefUpdatePrefsTask.Create(self);
CefPostTask(TID_UI, TempTask);
end;
end;
procedure TChromium.SavePreferences(const aFileName : string);
var
TempTask: ICefTask;
begin
if Initialized and (length(aFileName) > 0) then
begin
FPrefsFileName := aFileName;
TempTask := TCefSavePrefsTask.Create(self);
CefPostTask(TID_UI, TempTask);
end;
end;
procedure TChromium.SimulateMouseWheel(aDeltaX, aDeltaY : integer);
var
TempEvent : TCefMouseEvent;
@ -1572,8 +1594,10 @@ begin
end;
end;
procedure TChromium.UpdateAllPreferences;
procedure TChromium.Internal_UpdatePreferences;
begin
FUpdatePreferences := False;
UpdateProxyPrefs;
UpdatePreference('enable_do_not_track', FDoNotTrack);
UpdatePreference('enable_referrers', FSendReferrer);
@ -1968,29 +1992,29 @@ begin
end;
end;
function TChromium.GetAllPreferences : boolean;
procedure TChromium.Internal_SavePreferences;
var
TempDict : ICefDictionaryValue;
TempDict : ICefDictionaryValue;
TempPrefs : TStringList;
begin
Result := False;
try
if (FBrowser <> nil) and (FPrefs <> nil) then
if Initialized then
begin
FPrefs.Clear;
TempPrefs := TStringList.Create;
TempDict := FBrowser.Host.RequestContext.GetAllPreferences(True);
HandleDictionary(TempDict, FPrefs, '');
Result := SendCompMessage(CEF_PREFERENCES_AVAILABLE);
HandleDictionary(TempDict, TempPrefs, '');
TempPrefs.SaveToFile(FPrefsFileName);
SendCompMessage(CEF_PREFERENCES_SAVED);
end;
except
on e : exception do
OutputDebugMessage('TChromium.GetAllPreferences error: ' + e.Message);
OutputDebugMessage('TChromium.Internal_SavePreferences error: ' + e.Message);
end;
end;
procedure TChromium.PrefsAvailableMsg(var aMessage : TMessage);
begin
if (FPrefs <> nil) and assigned(FOnPrefsAvailable) then FOnPrefsAvailable(self, FPrefs.Text);
if assigned(FOnPrefsAvailable) then FOnPrefsAvailable(self);
end;
function TChromium.SendCompMessage(aMsg : cardinal; wParam : cardinal; lParam : integer) : boolean;
@ -1998,7 +2022,7 @@ begin
Result := (FCompHandle <> 0) and PostMessage(FCompHandle, aMsg, wParam, lParam);
end;
procedure TChromium.TextResultAvailable(const aText : string);
procedure TChromium.Internal_TextResultAvailable(const aText : string);
begin
if assigned(FOnTextResultAvailable) then FOnTextResultAvailable(self, aText);
end;
@ -2021,24 +2045,24 @@ begin
end;
end;
procedure TChromium.CookiesDeleted(numDeleted : integer);
procedure TChromium.Internal_CookiesDeleted(numDeleted : integer);
begin
if assigned(FOnCookiesDeleted) then FOnCookiesDeleted(self, numDeleted);
end;
procedure TChromium.DOMVisitorVisit(const document: ICefDomDocument);
procedure TChromium.Internal_DOMVisit(const document: ICefDomDocument);
begin
if assigned(FOnDocumentAvailable) then FOnDocumentAvailable(self, document);
end;
procedure TChromium.PdfPrintFinished(aResultOK : boolean);
procedure TChromium.Internal_PdfPrintFinished(aResultOK : boolean);
begin
if assigned(FOnPdfPrintFinished) then FOnPdfPrintFinished(self, aResultOK);
end;
procedure TChromium.ShowDevTools(inspectElementAt: TPoint; const aDevTools : TWinControl);
var
TempPoint : TCefPoint;
TempPoint : TCefPoint;
begin
if not(Initialized) or HasDevTools then Exit;
@ -2082,7 +2106,7 @@ end;
procedure TChromium.WndProc(var aMessage: TMessage);
begin
case aMessage.Msg of
CEF_PREFERENCES_AVAILABLE : PrefsAvailableMsg(aMessage);
CEF_PREFERENCES_SAVED : PrefsAvailableMsg(aMessage);
else aMessage.Result := DefWindowProc(FCompHandle, aMessage.Msg, aMessage.WParam, aMessage.LParam);
end;
@ -2094,7 +2118,7 @@ begin
if Assigned(FOnClose) then FOnClose(Self, browser, Result);
FClosing := True;
if (browser <> nil) and (FBrowserId = browser.Identifier) then FClosing := True;
end;
procedure TChromium.doOnAddressChange(const browser: ICefBrowser; const frame: ICefFrame; const url: ustring);
@ -2110,7 +2134,7 @@ begin
if (FBrowser <> nil) then FBrowserId := FBrowser.Identifier;
end;
UpdateAllPreferences;
Internal_UpdatePreferences;
FInitialized := (FBrowser <> nil) and (FBrowserId <> 0);
@ -2124,26 +2148,19 @@ function TChromium.doOnBeforeBrowse(const browser : ICefBrowser;
begin
Result := False;
if FUpdatePreferences then
begin
FUpdatePreferences := False;
UpdateAllPreferences;
end;
if FGetPreferences then
begin
FGetPreferences := False;
GetAllPreferences;
end;
if FUpdatePreferences then Internal_UpdatePreferences;
if Assigned(FOnBeforeBrowse) then FOnBeforeBrowse(Self, browser, frame, request, isRedirect, Result);
end;
procedure TChromium.doOnBeforeClose(const browser: ICefBrowser);
begin
FInitialized := False;
FBrowser := nil;
FBrowserId := 0;
if (browser <> nil) and (FBrowserId = browser.Identifier) then
begin
FInitialized := False;
FBrowser := nil;
FBrowserId := 0;
end;
if Assigned(FOnBeforeClose) then FOnBeforeClose(Self, browser);
end;

View File

@ -117,8 +117,13 @@ end;
procedure TChromiumWindow.WebBrowser_OnClose(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
PostMessage(self.Handle, CEF_DOONCLOSE, 0, 0);
Result := True;
if assigned(FOnClose) then
begin
PostMessage(self.Handle, CEF_DOONCLOSE, 0, 0);
Result := True;
end
else
Result := False;
end;
procedure TChromiumWindow.OnCloseMsg(var aMessage : TMessage);

View File

@ -270,8 +270,8 @@ const
ZOOM_STEP_MAX = ZOOM_STEP_500;
ZOOM_STEP_DEF = ZOOM_STEP_100;
CEF_PREFERENCES_AVAILABLE = WM_APP + $A00;
CEF_DOONCLOSE = WM_APP + $A01;
CEF_PREFERENCES_SAVED = WM_APP + $A00;
CEF_DOONCLOSE = WM_APP + $A01;
USER_TIMER_MINIMUM = $0000000A;
USER_TIMER_MAXIMUM = $7FFFFFFF;

View File

@ -123,7 +123,7 @@ end;
procedure TCefCustomDeleteCookiesCallback.OnComplete(numDeleted: Integer);
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).CookiesDeleted(numDeleted);
TChromium(FChromiumBrowser).Internal_CookiesDeleted(numDeleted);
end;
end.

View File

@ -127,7 +127,7 @@ end;
procedure TCustomDomVisitor.visit(const document: ICefDomDocument);
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).DOMVisitorVisit(document);
TChromium(FChromiumBrowser).Internal_DOMVisit(document);
end;
end.

View File

@ -52,7 +52,7 @@ uses
{$ELSE}
Windows, Classes, SysUtils,
{$ENDIF}
uCEFTypes, uCEFInterfaces, uCEFLibFunctions;
uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFResourceHandler;
const
Kernel32DLL = 'kernel32.dll';
@ -116,11 +116,18 @@ 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 CefAddCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol, TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean;
function CefRemoveCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol, TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean;
function CefClearCrossOriginWhitelist: Boolean;
implementation
uses
uCEFConstants, uCEFApplication;
uCEFConstants, uCEFApplication, uCEFSchemeHandlerFactory;
function CefColorGetA(color: TCefColor): Byte;
begin
@ -446,4 +453,63 @@ begin
{$ENDIF}
end;
function CefRegisterSchemeHandlerFactory(const SchemeName, HostName: ustring;
const handler: TCefResourceHandlerClass): Boolean;
var
s, h: TCefString;
begin
s := CefString(SchemeName);
h := CefString(HostName);
Result := cef_register_scheme_handler_factory(
@s,
@h,
CefGetData(TCefSchemeHandlerFactoryOwn.Create(handler) as ICefBase)) <> 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;
begin
Result := cef_clear_scheme_handler_factories <> 0;
end;
function CefAddCrossOriginWhitelistEntry(const SourceOrigin, TargetProtocol,
TargetDomain: ustring; AllowTargetSubdomains: Boolean): Boolean;
var
so, tp, td: TCefString;
begin
so := CefString(SourceOrigin);
tp := CefString(TargetProtocol);
td := CefString(TargetDomain);
Result := cef_add_cross_origin_whitelist_entry(@so, @tp, @td, Ord(AllowTargetSubdomains)) <> 0;
end;
function CefRemoveCrossOriginWhitelistEntry(
const SourceOrigin, TargetProtocol, TargetDomain: ustring;
AllowTargetSubdomains: Boolean): Boolean;
var
so, tp, td: TCefString;
begin
so := CefString(SourceOrigin);
tp := CefString(TargetProtocol);
td := CefString(TargetDomain);
Result := cef_remove_cross_origin_whitelist_entry(@so, @tp, @td, Ord(AllowTargetSubdomains)) <> 0;
end;
function CefClearCrossOriginWhitelist: Boolean;
begin
Result := cef_clear_cross_origin_whitelist <> 0;
end;
end.

View File

@ -120,7 +120,7 @@ end;
procedure TCefPDFPrintCallBack.OnPdfPrintFinished(const path: ustring; aResultOK : Boolean);
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).PdfPrintFinished(aResultOK);
TChromium(FChromiumBrowser).Internal_PdfPrintFinished(aResultOK);
end;
end.

View File

@ -128,7 +128,7 @@ end;
procedure TCustomCefStringVisitor.Visit(const str: ustring);
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).TextResultAvailable(str);
TChromium(FChromiumBrowser).Internal_TextResultAvailable(str);
end;
end.

View File

@ -110,6 +110,26 @@ type
constructor Create(const aCallBack : ICefDeleteCookiesCallback); reintroduce;
end;
TCefUpdatePrefsTask = class(TCefTaskOwn)
protected
FChromiumBrowser : TObject;
procedure Execute; override;
public
constructor Create(const aChromiumBrowser : TObject); reintroduce;
end;
TCefSavePrefsTask = class(TCefTaskOwn)
protected
FChromiumBrowser : TObject;
procedure Execute; override;
public
constructor Create(const aChromiumBrowser : TObject); reintroduce;
end;
implementation
uses
@ -182,7 +202,7 @@ end;
procedure TCefGetHTMLTask.Execute;
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).GetHTML;
TChromium(FChromiumBrowser).Internal_GetHTML;
end;
// TCefGetDocumentTask
@ -196,7 +216,7 @@ end;
procedure TCefGetDocumentTask.Execute;
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).VisitDOM;
TChromium(FChromiumBrowser).Internal_VisitDOM;
end;
// TCefDeleteCookiesTask
@ -216,4 +236,34 @@ begin
CookieManager.DeleteCookies('', '', FCallBack);
end;
// TCefUpdatePrefsTask
constructor TCefUpdatePrefsTask.Create(const aChromiumBrowser : TObject);
begin
inherited Create;
FChromiumBrowser := aChromiumBrowser;
end;
procedure TCefUpdatePrefsTask.Execute;
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).Internal_UpdatePreferences;
end;
// TCefSavePrefsTask
constructor TCefSavePrefsTask.Create(const aChromiumBrowser : TObject);
begin
inherited Create;
FChromiumBrowser := aChromiumBrowser;
end;
procedure TCefSavePrefsTask.Execute;
begin
if (FChromiumBrowser <> nil) and (FChromiumBrowser is TChromium) then
TChromium(FChromiumBrowser).Internal_SavePreferences;
end;
end.