1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-09-30 21:28:55 +02:00

Update to CEF 75.0.7

This commit is contained in:
Salvador Díaz Fau
2019-06-16 10:31:13 +02:00
parent 22f4a1d6d8
commit 52fca97884
186 changed files with 4104 additions and 1826 deletions

View File

@@ -3,10 +3,10 @@ CEF4Delphi is an open source project created by Salvador D
CEF4Delphi is based on DCEF3, made by Henri Gourvest. The original license of DCEF3 still applies to CEF4Delphi. Read the license terms in the first lines of any *.pas file.
CEF4Delphi uses CEF 74.1.19 which includes Chromium 74.0.3729.157.
CEF4Delphi uses CEF 75.0.7 which includes Chromium 75.0.3770.80.
The CEF binaries used by CEF4Delphi are available for download at spotify :
* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_74.1.19%2Bgb62bacf%2Bchromium-74.0.3729.157_windows32.tar.bz2)
* [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_74.1.19%2Bgb62bacf%2Bchromium-74.0.3729.157_windows64.tar.bz2)
* [32 bits](http://opensource.spotify.com/cefbuilds/cef_binary_75.0.7%2Bg19229b6%2Bchromium-75.0.3770.80_windows32.tar.bz2)
* [64 bits](http://opensource.spotify.com/cefbuilds/cef_binary_75.0.7%2Bg19229b6%2Bchromium-75.0.3770.80_windows64.tar.bz2)
CEF4Delphi was developed and tested on Delphi 10.3 Rio and it has been tested in Delphi 7, Delphi XE, Delphi 10, Delphi 10.2 and Lazarus 2.0.2/FPC 3.0.4. CEF4Delphi includes VCL, FireMonkey (FMX) and Lazarus components.

View File

@@ -96,7 +96,7 @@ type
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Timer1Timer(Sender: TObject);
@@ -503,7 +503,7 @@ begin
SendCompMessage(WM_CLOSE);
end;
procedure TFMXExternalPumpBrowserFrm.chrmosrBeforePopup(Sender : TObject;
procedure TFMXExternalPumpBrowserFrm.chrmosrBeforePopup( Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const targetUrl : ustring;
@@ -514,6 +514,7 @@ procedure TFMXExternalPumpBrowserFrm.chrmosrBeforePopup(Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -58,7 +58,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure FMXChromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess, Result: Boolean);
procedure FMXChromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
procedure FMXChromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure FMXChromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
@@ -150,8 +150,8 @@ procedure TChildForm.FMXChromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess,
Result: Boolean);
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess, Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);

View File

@@ -28,7 +28,6 @@ begin
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.EnableGPU := True; // Enable hardware acceleration
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
}

View File

@@ -72,8 +72,9 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess,
Result: Boolean);
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess, Result: Boolean);
procedure FormResize(Sender: TObject);
procedure FMXChromium1AfterCreated(Sender: TObject;
const browser: ICefBrowser);
@@ -157,6 +158,7 @@ procedure TSimpleFMXBrowserFrm.FMXChromium1BeforePopup( Sender
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : boolean;
var Result : boolean);
begin

View File

@@ -102,7 +102,6 @@ begin
GlobalCEFApp.ResourcesDirPath := 'cef';
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
GlobalCEFApp.LogFile := 'debug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO;

View File

@@ -68,7 +68,6 @@ begin
GlobalCEFApp.ResourcesDirPath := 'cef';
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
GlobalCEFApp.LogFile := 'debug.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO;

View File

@@ -88,7 +88,7 @@ type
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure SnapshotBtnClick(Sender: TObject);
@@ -293,6 +293,7 @@ procedure TWebBrowserFrm.chrmosrBeforePopup( Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -89,6 +89,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
@@ -246,7 +247,9 @@ procedure TCookieVisitorFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -39,7 +39,7 @@ program CRBrowser;
{$I cef.inc}
uses
uses
{$IFDEF DELPHI16_UP}
Vcl.Forms,
WinApi.Windows,
@@ -56,7 +56,7 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
CreateGlobalCEFApp;
if GlobalCEFApp.StartMainProcess then
begin
@@ -68,6 +68,5 @@ begin
Application.Run;
end;
GlobalCEFApp.Free;
GlobalCEFApp := nil;
DestroyGlobalCEFApp;
end.

View File

@@ -131,7 +131,6 @@
</DelphiCompile>
<DCCReference Include="uMainForm.pas">
<Form>MainForm</Form>
<FormType>dfm</FormType>
</DCCReference>
<DCCReference Include="uCustomResourceHandler.pas"/>
<BuildConfiguration Include="Release">

View File

@@ -58,8 +58,10 @@ type
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;
procedure GetResponseHeaders(const response: ICefResponse; out responseLength: Int64; out redirectUrl: ustring); override;
//function open(const request: ICefRequest; var handle_request: boolean; const callback: ICefCallback): boolean; override;
//function read(const data_out: Pointer; bytes_to_read: Integer; var bytes_read: Integer; const callback: ICefResourceReadCallback): boolean; override;
public
constructor Create(const browser: ICefBrowser; const frame: ICefFrame; const schemeName: ustring; const request: ICefRequest; const aStream : TStream; const aMimeType : ustring); reintroduce;
@@ -112,6 +114,32 @@ begin
else
responseLength := 0;
end;
{
function TCustomResourceHandler.open(const request : ICefRequest;
var handle_request : boolean;
const callback : ICefCallback): boolean;
begin
Result := True;
handle_request := True;
FStatus := 200;
FStatusText := 'OK';
if (FStream <> nil) then FStream.Seek(0, soFromBeginning);
end;
function TCustomResourceHandler.read(const data_out : Pointer;
bytes_to_read : Integer;
var bytes_read : Integer;
const callback : ICefResourceReadCallback): boolean;
begin
if (FStream <> nil) and (data_out <> nil) then
begin
bytes_read := FStream.Read(data_out^, bytes_to_read);
Result := True;
end
else
Result := False;
end; }
function TCustomResourceHandler.ProcessRequest(const request : ICefRequest; const callback : ICefCallback): Boolean;
begin

View File

@@ -12,6 +12,7 @@ object MainForm: TMainForm
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
OnClose = FormClose
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnShow = FormShow

View File

@@ -60,11 +60,14 @@ type
Button1: TButton;
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ChromiumWindow1Close(Sender: TObject);
procedure ChromiumWindow1BeforeClose(Sender: TObject);
@@ -79,9 +82,11 @@ type
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
FClosing : boolean; // Set to True in the CloseQuery event.
FHandler : ICefResourceHandler;
procedure Chromium_OnAfterCreated(Sender: TObject);
procedure Chromium_OnGetResourceHandler(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; out Result: ICefResourceHandler);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnGetResourceHandler(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; var aResourceHandler : ICefResourceHandler);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
public
{ Public declarations }
@@ -90,6 +95,8 @@ type
var
MainForm: TMainForm;
procedure CreateGlobalCEFApp;
implementation
{$R *.dfm}
@@ -103,11 +110,24 @@ uses
// 2. The TChromiumWindow.OnClose event calls TChromiumWindow.DestroyChildWindow which triggers the TChromiumWindow.OnBeforeClose event.
// 3. TChromiumWindow.OnBeforeClose sets FCanClose to True and closes the form.
procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
//GlobalCEFApp.LogFile := 'cef.log';
//GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
ChromiumWindow1.LoadURL(Edit1.Text);
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FHandler := nil;
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := FCanClose;
@@ -121,9 +141,24 @@ begin
end;
procedure TMainForm.FormCreate(Sender: TObject);
var
TempStream : TStringStream;
begin
FCanClose := False;
FClosing := False;
TempStream := nil;
FCanClose := False;
FClosing := False;
try
try
TempStream := TStringStream.Create('<!DOCTYPE html><html><body><p>test</p></body></html>', TEncoding.UTF8, false);
FHandler := TCustomResourceHandler.Create(nil, nil, '', nil, TStream(TempStream), CefGetMimeType('html'));
except
on e : exception do
if CustomExceptionHandler('TMainForm.FormCreate', e) then raise;
end;
finally
if (TempStream <> nil) then FreeAndNil(TempStream);
end;
end;
procedure TMainForm.FormShow(Sender: TObject);
@@ -166,38 +201,29 @@ begin
AddressBarPnl.Enabled := True;
end;
procedure TMainForm.Chromium_OnGetResourceHandler(Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const request : ICefRequest;
out Result : ICefResourceHandler);
var
TempStream : TStringStream;
procedure TMainForm.Chromium_OnGetResourceHandler( Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const request : ICefRequest;
var aResourceHandler : ICefResourceHandler);
begin
// This event is called from the IO thread. Use mutexes if necessary.
TempStream := nil;
Result := nil;
try
try
TempStream := TStringStream.Create('<!DOCTYPE html><html><body><p>test</p></body></html>', TEncoding.UTF8, false);
Result := TCustomResourceHandler.Create(browser, frame, '', request, TStream(TempStream), CefGetMimeType('html'));
except
on e : exception do
if CustomExceptionHandler('TMainForm.Chromium_OnGetResourceHandler', e) then raise;
end;
finally
if (TempStream <> nil) then FreeAndNil(TempStream);
end;
aResourceHandler := FHandler;
end;
procedure TMainForm.Chromium_OnBeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var Result: Boolean);
procedure TMainForm.Chromium_OnBeforePopup( Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const targetUrl : ustring;
const targetFrameName : ustring;
targetDisposition : TCefWindowOpenDisposition;
userGesture : Boolean;
const popupFeatures : TCefPopupFeatures;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);

View File

@@ -67,7 +67,6 @@ begin
GlobalCEFApp.ResourcesDirPath := 'cef';
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
}

View File

@@ -49,7 +49,8 @@ uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms, Dialogs, ExtCtrls,
{$ENDIF}
uCEFApplication, uCEFWindowParent, uCEFChromiumWindow, uCEFInterfaces, uCEFTypes, uCEFConstants;
uCEFApplication, uCEFWindowParent, uCEFChromiumWindow, uCEFInterfaces, uCEFTypes, uCEFConstants,
uCEFWinControl;
type
TWebBrowserFrm = class(TForm)
@@ -57,19 +58,23 @@ type
Timer1: TTimer;
procedure FormShow(Sender: TObject);
procedure ChromiumWindow1AfterCreated(Sender: TObject);
procedure Chromium_OnBeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var Result: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure ChromiumWindow1BeforeClose(Sender: TObject);
procedure ChromiumWindow1Close(Sender: TObject);
private
procedure Chromium_OnBeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
// You have to handle this two messages to call NotifyMoveOrResizeStarted or some page elements will be misaligned.
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
procedure WMMoving(var aMessage : TMessage); message WM_MOVING;
@@ -173,7 +178,9 @@ procedure TWebBrowserFrm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -88,7 +88,7 @@ type
const params: ICefContextMenuParams; commandId: Integer;
eventFlags: Cardinal; out Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure VisitDOMBtnClick(Sender: TObject);
@@ -98,6 +98,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -216,7 +217,7 @@ begin
end;
end;
procedure DOMVisitor_OnDocAvailable(const browser: ICefBrowser; const document: ICefDomDocument);
procedure DOMVisitor_OnDocAvailable(const browser: ICefBrowser; const frame: ICefFrame; const document: ICefDomDocument);
var
msg: ICefProcessMessage;
begin
@@ -241,10 +242,10 @@ begin
// Chromium1ProcessMessageReceived
msg := TCefProcessMessageRef.New(DOMVISITOR_MSGNAME_PARTIAL);
msg.ArgumentList.SetString(0, 'document.Title : ' + document.Title);
browser.SendProcessMessage(PID_BROWSER, msg);
frame.SendProcessMessage(PID_BROWSER, msg);
end;
procedure DOMVisitor_OnDocAvailableFullMarkup(const browser: ICefBrowser; const document: ICefDomDocument);
procedure DOMVisitor_OnDocAvailableFullMarkup(const browser: ICefBrowser; const frame: ICefFrame; const document: ICefDomDocument);
var
msg: ICefProcessMessage;
begin
@@ -253,10 +254,11 @@ begin
// Chromium1ProcessMessageReceived
msg := TCefProcessMessageRef.New(DOMVISITOR_MSGNAME_FULL);
msg.ArgumentList.SetString(0, document.Body.AsMarkup);
browser.SendProcessMessage(PID_BROWSER, msg);
frame.SendProcessMessage(PID_BROWSER, msg);
end;
procedure GlobalCEFApp_OnProcessMessageReceived(const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const message : ICefProcessMessage;
var aHandled : boolean);
@@ -274,7 +276,7 @@ begin
if (TempFrame <> nil) then
begin
TempVisitor := TCefFastDomVisitor2.Create(browser, DOMVisitor_OnDocAvailable);
TempVisitor := TCefFastDomVisitor2.Create(browser, TempFrame, DOMVisitor_OnDocAvailable);
TempFrame.VisitDom(TempVisitor);
end;
@@ -287,7 +289,7 @@ begin
if (TempFrame <> nil) then
begin
TempVisitor := TCefFastDomVisitor2.Create(browser, DOMVisitor_OnDocAvailableFullMarkup);
TempVisitor := TCefFastDomVisitor2.Create(browser, TempFrame, DOMVisitor_OnDocAvailableFullMarkup);
TempFrame.VisitDom(TempVisitor);
end;
@@ -334,7 +336,9 @@ procedure TDOMVisitorFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -365,7 +369,7 @@ begin
end;
procedure TDOMVisitorFrm.Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
begin
Result := False;

View File

@@ -77,6 +77,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
private
@@ -171,7 +172,9 @@ procedure TExternalPumpBrowserFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -72,6 +72,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -163,7 +164,8 @@ procedure TMainForm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -56,6 +56,7 @@ uses
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -86,7 +86,7 @@ type
FClosing : boolean; // Set to True in the CloseQuery event.
procedure Chromium_OnJsdialog(Sender: TObject; const browser: ICefBrowser; const originUrl: ustring; dialogType: TCefJsDialogType; const messageText, defaultPromptText: ustring; const callback: ICefJsDialogCallback; out suppressMessage: Boolean; out Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
procedure WMMoving(var aMessage : TMessage); message WM_MOVING;
@@ -258,7 +258,9 @@ procedure TJSDialogBrowserFrm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -79,7 +79,7 @@ type
procedure FormShow(Sender: TObject);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1BeforeContextMenu(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
@@ -95,6 +95,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
@@ -208,7 +209,9 @@ procedure TJSEvalFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -393,9 +396,10 @@ begin
end;
procedure ParseEvalJsAnswer(const pMessage : ICefProcessMessage;
pBrowser : ICefBrowser;
pReturnValue : ICefv8Value;
pException : ICefV8Exception);
const pBrowser : ICefBrowser;
const pFrame : ICefFrame;
const pReturnValue : ICefv8Value;
const pException : ICefV8Exception);
var
pAnswer : ICefProcessMessage;
strResult : String;
@@ -431,10 +435,10 @@ begin
end;
end;
pBrowser.SendProcessMessage(PID_BROWSER, pAnswer);
pFrame.SendProcessMessage(PID_BROWSER, pAnswer);
end;
procedure ParseBinaryValue(const pBrowser : ICefBrowser; const aBinaryValue : ICefBinaryValue);
procedure ParseBinaryValue(const pBrowser : ICefBrowser; const pFrame : ICefFrame; const aBinaryValue : ICefBinaryValue);
var
pAnswer : ICefProcessMessage;
TempBuffer : TBytes;
@@ -461,7 +465,7 @@ begin
'Encoded image : ' + EncodeBase64(TempPointer, TempSize);
if pAnswer.ArgumentList.SetString(0, TempString) then
pBrowser.SendProcessMessage(PID_BROWSER, pAnswer);
pFrame.SendProcessMessage(PID_BROWSER, pAnswer);
end;
end;
except
@@ -474,6 +478,7 @@ begin
end;
procedure RenderProcessHandler_OnProcessMessageReceivedEvent(const pBrowser : ICefBrowser;
const pFrame : ICefFrame;
uSourceProcess : TCefProcessId;
const pMessage : ICefProcessMessage;
var aHandled : boolean);
@@ -499,7 +504,7 @@ begin
if pV8Context.Enter then
begin
pV8Context.Eval(TempScript, '', 1, pReturnValue, pException);
ParseEvalJsAnswer(pMessage, pBrowser, pReturnValue, pException);
ParseEvalJsAnswer(pMessage, pBrowser, pFrame, pReturnValue, pException);
pV8Context.Exit;
end;
end;
@@ -510,7 +515,7 @@ begin
if (pMessage.Name = BINARY_PARAM_JS) then
begin
TempBinValue := pMessage.ArgumentList.GetBinary(0);
ParseBinaryValue(pBrowser, TempBinValue);
ParseBinaryValue(pBrowser, pFrame, TempBinValue);
aHandled := True;
end;
end;
@@ -519,10 +524,12 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnProcessMessageReceived := RenderProcessHandler_OnProcessMessageReceivedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSEvalFrm.Chromium1ProcessMessageReceived(Sender : TObject;
procedure TJSEvalFrm.Chromium1ProcessMessageReceived( Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const message : ICefProcessMessage;
out Result : Boolean);

View File

@@ -82,6 +82,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormDestroy(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -150,6 +151,7 @@ begin
end;
procedure GlobalCEFApp_OnProcessMessageReceived(const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const aMessage : ICefProcessMessage;
var aHandled : boolean);
@@ -172,6 +174,7 @@ begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.OnProcessMessageReceived := GlobalCEFApp_OnProcessMessageReceived;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExecutingFunctionsFrm.GoBtnClick(Sender: TObject);
@@ -204,7 +207,9 @@ procedure TJSExecutingFunctionsFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -80,7 +80,7 @@ type
const params: ICefContextMenuParams; commandId: Integer;
eventFlags: Cardinal; out Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Timer1Timer(Sender: TObject);
@@ -90,6 +90,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -215,6 +216,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitialized;
GlobalCEFApp.DisableFeatures := 'NetworkService';
{$IFDEF INTFLOG}
GlobalCEFApp.LogFile := 'debug.log';
@@ -254,7 +256,7 @@ procedure TJSExtensionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -300,7 +302,7 @@ begin
end;
procedure TJSExtensionFrm.Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
begin
Result := False;

View File

@@ -76,7 +76,7 @@ begin
msg := TCefProcessMessageRef.New(MOUSEOVER_MESSAGE_NAME);
msg.ArgumentList.SetString(0, arguments[0].GetStringValue);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
Result := True;
@@ -89,7 +89,7 @@ begin
msg := TCefProcessMessageRef.New(arguments[1].GetStringValue);
msg.ArgumentList.SetString(0, arguments[0].GetStringValue);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
Result := True;

View File

@@ -71,9 +71,10 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -151,6 +152,7 @@ begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := {$IFNDEF DELPHI12_UP}TJSSimpleExtensionFrm.{$ENDIF}
GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExtensionWithFunctionFrm.GoBtnClick(Sender: TObject);
@@ -175,7 +177,8 @@ procedure TJSExtensionWithFunctionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -190,7 +193,7 @@ begin
end;
procedure TJSExtensionWithFunctionFrm.Chromium1ProcessMessageReceived(
Sender: TObject; const browser: ICefBrowser;
Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame;
sourceProcess: TCefProcessId; const message: ICefProcessMessage;
out Result: Boolean);
begin

View File

@@ -67,7 +67,7 @@ begin
begin
msg := TCefProcessMessageRef.New(TEST_MESSAGE_NAME);
msg.ArgumentList.SetString(0, 'Message received!');
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
retval := TCefv8ValueRef.NewString('My Value!');
Result := True;

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -154,6 +155,7 @@ begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := {$IFNDEF DELPHI12_UP}TJSSimpleExtensionFrm.{$ENDIF}
GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExtensionWithObjectParameterFrm.GoBtnClick(Sender: TObject);
@@ -179,6 +181,7 @@ procedure TJSExtensionWithObjectParameterFrm.Chromium1BeforePopup(
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -82,7 +82,7 @@ type
const params: ICefContextMenuParams; commandId: Integer;
eventFlags: Cardinal; out Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Timer1Timer(Sender: TObject);
@@ -92,6 +92,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -163,6 +164,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitialized;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSRTTIExtensionFrm.GoBtnClick(Sender: TObject);
@@ -191,7 +193,8 @@ procedure TJSRTTIExtensionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -251,7 +254,7 @@ begin
end;
procedure TJSRTTIExtensionFrm.Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
begin
Result := False;

View File

@@ -70,7 +70,7 @@ begin
// Sending a message back to the browser. It'll be received in the TChromium.OnProcessMessageReceived event.
// TCefv8ContextRef.Current returns the v8 context for the frame that is currently executing Javascript.
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
class procedure TTestExtension.sendresulttobrowser(const msgtext, msgname : string);
@@ -80,7 +80,7 @@ begin
msg := TCefProcessMessageRef.New(msgname);
msg.ArgumentList.SetString(0, msgtext);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
end.

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -141,6 +142,7 @@ begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := {$IFNDEF DELPHI12_UP}TJSSimpleExtensionFrm.{$ENDIF}
GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSSimpleExtensionFrm.GoBtnClick(Sender: TObject);
@@ -158,7 +160,8 @@ procedure TJSSimpleExtensionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -129,6 +130,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSSimpleWindowBindingFrm.GoBtnClick(Sender: TObject);
@@ -146,7 +148,8 @@ procedure TJSSimpleWindowBindingFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -68,6 +68,7 @@ begin
// 4. Run this demo : JSSimpleWindowBinding
GlobalCEFApp.BrowserSubprocessPath := 'SubProcess.exe';
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -68,6 +68,7 @@ end;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.DisableFeatures := 'NetworkService';
// The main process and the subprocess *MUST* have the same FrameworkDirPath, ResourcesDirPath,
// LocalesDirPath, cache, cookies and UserDataPath paths
@@ -81,7 +82,6 @@ begin
GlobalCEFApp.ResourcesDirPath := 'cef';
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
}

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -127,7 +128,8 @@ procedure TJSSimpleWindowBindingFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -134,6 +135,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSWindowBindingWithFunctionFrm.GoBtnClick(Sender: TObject);
@@ -152,6 +154,7 @@ procedure TJSWindowBindingWithFunctionFrm.Chromium1BeforePopup(
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -70,6 +70,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -135,6 +136,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSWindowBindingWithObjectFrm.GoBtnClick(Sender: TObject);
@@ -153,6 +155,7 @@ procedure TJSWindowBindingWithObjectFrm.Chromium1BeforePopup(
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -100,7 +100,7 @@ type
procedure chrmosrPopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean);
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrBeforeContextMenu(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; const model: ICefMenuModel);
procedure chrmosrContextMenuCommand(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const params: ICefContextMenuParams; commandId: Integer; eventFlags: Cardinal; out Result: Boolean);
@@ -348,6 +348,7 @@ procedure TForm1.chrmosrBeforePopup( Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -83,6 +83,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
private
@@ -136,7 +137,8 @@ procedure TChildForm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -224,8 +226,6 @@ begin
Chromium1.ProxyPassword := '';
}
// In case you used a custom cookies path in the GlobalCEFApp you can
// override it in the TChromium.CreateBrowser function
Chromium1.CreateBrowser(CEFWindowParent1, '', TempContext);
end;

View File

@@ -83,6 +83,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
private
@@ -136,7 +137,9 @@ procedure TChildForm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -213,8 +216,6 @@ begin
else
TempContext := nil;
// In case you used a custom cookies path in the GlobalCEFApp you can
// override it in the TChromium.CreateBrowser function
Chromium1.CreateBrowser(CEFWindowParent1, '', TempContext);
end;

View File

@@ -140,6 +140,9 @@ object MiniBrowserFrm: TMiniBrowserFrm
'https://www.w3schools.com/html/html5_video.asp'
'http://www.adobe.com/software/flash/about/'
'http://isflashinstalled.com/'
'https://helpx.adobe.com/flash-player.html'
'https://www.ultrasounds.com/'
'https://www.whatismybrowser.com/detect/is-flash-installed'
'http://html5test.com/'
'https://webrtc.github.io/samples/src/content/devices/input-outpu' +

View File

@@ -99,7 +99,7 @@ type
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);
procedure SnapshotBtnClick(Sender: TObject);
@@ -335,7 +335,8 @@ procedure TOSRExternalPumpBrowserFrm.chrmosrBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -59,9 +59,9 @@ uses
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.WindowlessRenderingEnabled := True;
GlobalCEFApp.EnableHighDPISupport := True;
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -85,11 +85,10 @@ type
procedure Chromium1PopupShow(Sender: TObject; const browser: ICefBrowser; show: Boolean);
procedure Chromium1PopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure Chromium1Tooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; var popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; out Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess, Result: Boolean);
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
protected
protected
FPopUpBitmap : TBitmap;
FPopUpRect : TRect;
FShowPopUp : boolean;
@@ -336,12 +335,13 @@ procedure TChildForm.Chromium1BeforePopup(Sender : TObject;
const targetFrameName : ustring;
targetDisposition : TCefWindowOpenDisposition;
userGesture : Boolean;
var popupFeatures : TCefPopupFeatures;
const popupFeatures : TCefPopupFeatures;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
out Result : Boolean);
var Result : Boolean);
begin
case targetDisposition of
WOD_NEW_FOREGROUND_TAB,
@@ -426,7 +426,7 @@ begin
end;
end;
procedure TChildForm.Chromium1Paint(Sender : TObject;
procedure TChildForm.Chromium1Paint( Sender : TObject;
const browser : ICefBrowser;
kind : TCefPaintElementType;
dirtyRectsCount : NativeUInt;

View File

@@ -61,6 +61,7 @@ object MainForm: TMainForm
Height = 594
Align = alClient
TabOrder = 1
ExplicitTop = 31
end
object Timer1: TTimer
Enabled = False

View File

@@ -76,7 +76,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
@@ -209,6 +209,7 @@ procedure TMainForm.Chromium1BeforePopup(Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -58,9 +58,9 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.FlashEnabled := False;
GlobalCEFApp.EnableHighDPISupport := True;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.EnableHighDPISupport := True;
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -62,7 +62,7 @@ type
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1TitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
@@ -164,6 +164,7 @@ procedure TChildForm.Chromium1BeforePopup(Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -74,7 +74,7 @@ type
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction: TCefCloseBrowserAction);
@@ -213,6 +213,7 @@ procedure TMainForm.Chromium1BeforePopup(Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -77,6 +77,7 @@ object Form1: TForm1
Height = 439
Align = alClient
TabOrder = 1
ExplicitTop = 27
end
object Memo1: TMemo
Left = 0

View File

@@ -75,6 +75,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -363,7 +364,8 @@ procedure TForm1.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -47,7 +47,7 @@ uses
Forms,
Windows,
{$ENDIF }
uCEFApplication, uCEFConstants,
uCEFApplication,
uResponseFilterBrowser in 'uResponseFilterBrowser.pas' {ResponseFilterBrowserFrm};
{$R *.res}
@@ -56,10 +56,7 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.LogFile := 'cef.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
CreateGlobalCEFApp;
if GlobalCEFApp.StartMainProcess then
begin
@@ -71,6 +68,5 @@ begin
Application.Run;
end;
GlobalCEFApp.Free;
GlobalCEFApp := nil;
DestroyGlobalCEFApp;
end.

View File

@@ -76,7 +76,7 @@ type
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1GetResourceResponseFilter(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; out Result: ICefResponseFilter);
procedure Chromium1ResourceLoadComplete(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; const response: ICefResponse; status: TCefUrlRequestStatus; receivedContentLength: Int64);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1BeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1LoadStart(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; transitionType: Cardinal);
@@ -131,6 +131,8 @@ type
var
ResponseFilterBrowserFrm: TResponseFilterBrowserFrm;
procedure CreateGlobalCEFApp;
implementation
{$R *.dfm}
@@ -187,6 +189,14 @@ uses
// If this demo is too complicated or the filter fails, consider using the
// URLRequest demo if possible.
procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
GlobalCEFApp.LogFile := 'cef.log';
GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
end;
procedure TResponseFilterBrowserFrm.Filter_OnFilter( Sender : TObject;
data_in : Pointer;
data_in_size : NativeUInt;
@@ -409,6 +419,7 @@ procedure TResponseFilterBrowserFrm.Chromium1BeforePopup( Sender
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -84,6 +84,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
@@ -143,8 +144,9 @@ end;
procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnRegCustomSchemes := GlobalCEFApp_OnRegCustomSchemes;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnRegCustomSchemes := GlobalCEFApp_OnRegCustomSchemes;
GlobalCEFApp.DisableFeatures := 'NetworkService';
// GlobalCEFApp.LogFile := 'debug.log';
// GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
@@ -176,6 +178,7 @@ procedure TSchemeRegistrationBrowserFrm.Chromium1BeforePopup(
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -80,7 +80,7 @@ type
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
FClosing : boolean; // Set to True in the CloseQuery event.
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
public
{ Public declarations }
@@ -168,7 +168,9 @@ procedure TForm1.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -67,7 +67,6 @@ begin
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.EnableGPU := True; // Enable hardware acceleration
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
}

View File

@@ -64,19 +64,21 @@ type
procedure FormShow(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
targetFrameName: ustring;
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
var aAction : TCefCloseBrowserAction);
procedure Chromium1BeforeClose(Sender: TObject;
const browser: ICefBrowser);
procedure Chromium1BeforePopup(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame; const targetUrl,
targetFrameName: ustring;
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue; var noJavascriptAccess,
Result: Boolean);
protected
// Variables to control when can we destroy the form safely
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
@@ -173,8 +175,8 @@ procedure TForm1.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var Result: Boolean);
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess, Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
Result := (targetDisposition in [WOD_NEW_FOREGROUND_TAB, WOD_NEW_BACKGROUND_TAB, WOD_NEW_POPUP, WOD_NEW_WINDOW]);

View File

@@ -71,7 +71,7 @@ type
procedure ChromiumWindow1AfterCreated(Sender: TObject);
procedure ChromiumWindow1BeforeClose(Sender: TObject);
procedure ChromiumWindow1Close(Sender: TObject);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
protected
FCanClose : boolean;
@@ -156,7 +156,9 @@ procedure TSimpleExternalPumpBrowserFrm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -103,7 +103,7 @@ type
procedure chrmosrPopupSize(Sender: TObject; const browser: ICefBrowser; const rect: PCefRect);
procedure chrmosrAfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrTooltip(Sender: TObject; const browser: ICefBrowser; var text: ustring; out Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure chrmosrBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure chrmosrIMECompositionRangeChanged(Sender: TObject; const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);
@@ -340,6 +340,7 @@ procedure TForm1.chrmosrBeforePopup(Sender : TObject;
var windowInfo : TCefWindowInfo;
var client : ICefClient;
var settings : TCefBrowserSettings;
var extra_info : ICefDictionaryValue;
var noJavascriptAccess : Boolean;
var Result : Boolean);
begin

View File

@@ -68,7 +68,6 @@ begin
GlobalCEFApp.ResourcesDirPath := 'cef';
GlobalCEFApp.LocalesDirPath := 'cef\locales';
GlobalCEFApp.cache := 'cef\cache';
GlobalCEFApp.cookies := 'cef\cookies';
GlobalCEFApp.UserDataPath := 'cef\User Data';
}

View File

@@ -78,7 +78,7 @@ type
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
FClosing : boolean; // Set to True in the CloseQuery event.
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
public
{ Public declarations }
@@ -165,7 +165,9 @@ procedure TForm1.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -94,7 +94,7 @@ type
procedure Chromium_OnTitleChange(Sender: TObject; const browser: ICefBrowser; const title: ustring);
procedure Chromium_OnClose(Sender: TObject; const browser: ICefBrowser; var aAction : TCefCloseBrowserAction);
procedure Chromium_OnBeforeClose(Sender: TObject; const browser: ICefBrowser);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED;
procedure BrowserDestroyWindowParentMsg(var aMessage : TMessage); message CEFBROWSER_DESTROYWNDPARENT;
@@ -156,6 +156,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextInitialized := GlobalCEFApp_OnContextInitialized;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TMainForm.AddTabBtnClick(Sender: TObject);
@@ -439,7 +440,9 @@ procedure TMainForm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -80,6 +80,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
private
@@ -133,7 +134,8 @@ procedure TChildForm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -8,9 +8,10 @@
<Unit0>
<Filename Value="CookieVisitor.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="41"/>
<CursorPos X="16" Y="58"/>
<UsageCount Value="20"/>
<IsVisibleTab Value="True"/>
<TopLine Value="53"/>
<CursorPos Y="63"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit0>
@@ -21,9 +22,9 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="1"/>
<TopLine Value="209"/>
<CursorPos X="8" Y="126"/>
<UsageCount Value="20"/>
<TopLine Value="244"/>
<CursorPos X="45" Y="263"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
@@ -34,16 +35,16 @@
<ComponentName Value="SimpleTextViewerFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="7"/>
<CursorPos X="8" Y="29"/>
<UsageCount Value="20"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
</Units>
<JumpHistory Count="10" HistoryIndex="9">
<JumpHistory Count="11" HistoryIndex="10">
<Position1>
<Filename Value="CookieVisitor.lpr"/>
</Position1>
@@ -83,6 +84,10 @@
<Filename Value="uSimpleTextViewer.pas"/>
<Caret Line="31"/>
</Position10>
<Position11>
<Filename Value="uCookieVisitor.pas"/>
<Caret Line="86" Column="26" TopLine="72"/>
</Position11>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -89,6 +89,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
@@ -246,7 +247,9 @@ procedure TCookieVisitorFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -56,7 +56,7 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
CreateGlobalCEFApp;
if GlobalCEFApp.StartMainProcess then
begin
@@ -68,6 +68,5 @@ begin
Application.Run;
end;
GlobalCEFApp.Free;
GlobalCEFApp := nil;
DestroyGlobalCEFApp;
end.

View File

@@ -4,13 +4,12 @@
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="5">
<Units Count="7">
<Unit0>
<Filename Value="CRBrowser.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="37"/>
<CursorPos Y="56"/>
<TopLine Value="48"/>
<CursorPos X="10" Y="71"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
@@ -21,9 +20,10 @@
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="48"/>
<CursorPos X="31" Y="60"/>
<TopLine Value="89"/>
<CursorPos Y="106"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -54,8 +54,24 @@
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit4>
<Unit5>
<Filename Value="..\..\..\source\uCEFChromium.pas"/>
<EditorIndex Value="2"/>
<TopLine Value="750"/>
<CursorPos X="92" Y="760"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit5>
<Unit6>
<Filename Value="..\..\..\source\uCEFChromiumEvents.pas"/>
<EditorIndex Value="3"/>
<TopLine Value="114"/>
<CursorPos X="3" Y="125"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit6>
</Units>
<JumpHistory Count="6" HistoryIndex="5">
<JumpHistory Count="13" HistoryIndex="12">
<Position1>
<Filename Value="uMainForm.pas"/>
</Position1>
@@ -79,6 +95,34 @@
<Filename Value="uMainForm.pas"/>
<Caret Line="60" Column="31" TopLine="48"/>
</Position6>
<Position7>
<Filename Value="uMainForm.pas"/>
<Caret Line="88" Column="386" TopLine="76"/>
</Position7>
<Position8>
<Filename Value="uMainForm.pas"/>
<Caret Line="209" Column="39" TopLine="202"/>
</Position8>
<Position9>
<Filename Value="uMainForm.pas"/>
<Caret Line="136" Column="59" TopLine="124"/>
</Position9>
<Position10>
<Filename Value="..\..\..\source\uCEFChromium.pas"/>
<Caret Line="760" Column="16" TopLine="750"/>
</Position10>
<Position11>
<Filename Value="uMainForm.pas"/>
<Caret Line="137" Column="84" TopLine="124"/>
</Position11>
<Position12>
<Filename Value="uMainForm.pas"/>
<Caret Line="87" Column="145" TopLine="76"/>
</Position12>
<Position13>
<Filename Value="uMainForm.pas"/>
<Caret Line="117" Column="69" TopLine="109"/>
</Position13>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -84,8 +84,8 @@ type
FClosing : boolean; // Set to True in the CloseQuery event.
procedure Chromium_OnAfterCreated(Sender: TObject);
procedure Chromium_OnGetResourceHandler(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; out Result: ICefResourceHandler);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnGetResourceHandler(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const request: ICefRequest; var Result: ICefResourceHandler);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
public
{ Public declarations }
@@ -93,6 +93,8 @@ type
var
MainForm: TMainForm;
procedure CreateGlobalCEFApp;
implementation
@@ -107,6 +109,14 @@ uses
// 2. The TChromiumWindow.OnClose event calls TChromiumWindow.DestroyChildWindow which triggers the TChromiumWindow.OnBeforeClose event.
// 3. TChromiumWindow.OnBeforeClose sets FCanClose to True and closes the form.
procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
//GlobalCEFApp.LogFile := 'cef.log';
//GlobalCEFApp.LogSeverity := LOGSEVERITY_VERBOSE;
end;
procedure TMainForm.Button1Click(Sender: TObject);
begin
ChromiumWindow1.LoadURL(Edit1.Text);
@@ -179,7 +189,7 @@ procedure TMainForm.Chromium_OnGetResourceHandler(Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
const request : ICefRequest;
out Result : ICefResourceHandler);
var Result : ICefResourceHandler);
var
TempStream : TStringStream;
begin
@@ -205,7 +215,9 @@ procedure TMainForm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -4,11 +4,11 @@
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="4">
<Units Count="6">
<Unit0>
<Filename Value="DOMVisitor.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="40"/>
<TopLine Value="38"/>
<CursorPos X="13" Y="44"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
@@ -22,8 +22,8 @@
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="458"/>
<CursorPos X="86" Y="471"/>
<TopLine Value="243"/>
<CursorPos X="11" Y="259"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -45,8 +45,23 @@
<UsageCount Value="10"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
<Unit4>
<Filename Value="..\..\..\source\uCEFDomVisitor.pas"/>
<EditorIndex Value="2"/>
<TopLine Value="66"/>
<CursorPos X="3" Y="73"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="..\..\..\source\uCEFInterfaces.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="185"/>
<CursorPos X="3" Y="201"/>
<UsageCount Value="10"/>
</Unit5>
</Units>
<JumpHistory Count="19" HistoryIndex="18">
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="DOMVisitor.lpr"/>
</Position1>
@@ -121,6 +136,50 @@
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="121" Column="15" TopLine="111"/>
</Position19>
<Position20>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="100" Column="43" TopLine="79"/>
</Position20>
<Position21>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="338" Column="39" TopLine="331"/>
</Position21>
<Position22>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="252" Column="77" TopLine="231"/>
</Position22>
<Position23>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="260" Column="81" TopLine="260"/>
</Position23>
<Position24>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="260" Column="81" TopLine="260"/>
</Position24>
<Position25>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="256" Column="53" TopLine="236"/>
</Position25>
<Position26>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="276" Column="62" TopLine="263"/>
</Position26>
<Position27>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="291" Column="74" TopLine="281"/>
</Position27>
<Position28>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="371" Column="55" TopLine="358"/>
</Position28>
<Position29>
<Filename Value="DOMVisitor.lpr"/>
<Caret Line="44" Column="13" TopLine="38"/>
</Position29>
<Position30>
<Filename Value="uDOMVisitor.pas"/>
<Caret Line="130" Column="11" TopLine="290"/>
</Position30>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -87,7 +87,7 @@ type
const params: ICefContextMenuParams; commandId: Integer;
eventFlags: Cardinal; out Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Timer1Timer(Sender: TObject);
procedure VisitDOMBtnClick(Sender: TObject);
@@ -97,6 +97,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -215,7 +216,7 @@ begin
end;
end;
procedure DOMVisitor_OnDocAvailable(const browser: ICefBrowser; const document: ICefDomDocument);
procedure DOMVisitor_OnDocAvailable(const browser: ICefBrowser; const frame: ICefFrame; const document: ICefDomDocument);
var
msg: ICefProcessMessage;
begin
@@ -240,10 +241,10 @@ begin
// Chromium1ProcessMessageReceived
msg := TCefProcessMessageRef.New(DOMVISITOR_MSGNAME_PARTIAL);
msg.ArgumentList.SetString(0, 'document.Title : ' + document.Title);
browser.SendProcessMessage(PID_BROWSER, msg);
frame.SendProcessMessage(PID_BROWSER, msg);
end;
procedure DOMVisitor_OnDocAvailableFullMarkup(const browser: ICefBrowser; const document: ICefDomDocument);
procedure DOMVisitor_OnDocAvailableFullMarkup(const browser: ICefBrowser; const frame: ICefFrame; const document: ICefDomDocument);
var
msg: ICefProcessMessage;
begin
@@ -252,10 +253,11 @@ begin
// Chromium1ProcessMessageReceived
msg := TCefProcessMessageRef.New(DOMVISITOR_MSGNAME_FULL);
msg.ArgumentList.SetString(0, document.Body.AsMarkup);
browser.SendProcessMessage(PID_BROWSER, msg);
frame.SendProcessMessage(PID_BROWSER, msg);
end;
procedure GlobalCEFApp_OnProcessMessageReceived(const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const message : ICefProcessMessage;
var aHandled : boolean);
@@ -273,7 +275,7 @@ begin
if (TempFrame <> nil) then
begin
TempVisitor := TCefFastDomVisitor2.Create(browser, DOMVisitor_OnDocAvailable);
TempVisitor := TCefFastDomVisitor2.Create(browser, frame, DOMVisitor_OnDocAvailable);
TempFrame.VisitDom(TempVisitor);
end;
@@ -286,7 +288,7 @@ begin
if (TempFrame <> nil) then
begin
TempVisitor := TCefFastDomVisitor2.Create(browser, DOMVisitor_OnDocAvailableFullMarkup);
TempVisitor := TCefFastDomVisitor2.Create(browser, frame, DOMVisitor_OnDocAvailableFullMarkup);
TempFrame.VisitDom(TempVisitor);
end;
@@ -333,7 +335,9 @@ procedure TDOMVisitorFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -364,7 +368,7 @@ begin
end;
procedure TDOMVisitorFrm.Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
begin
Result := False;

View File

@@ -22,8 +22,8 @@
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="191"/>
<CursorPos X="3" Y="211"/>
<TopLine Value="174"/>
<CursorPos X="39" Y="180"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -46,7 +46,7 @@
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
<JumpHistory Count="9" HistoryIndex="8">
<JumpHistory Count="10" HistoryIndex="9">
<Position1>
<Filename Value="ExternalPumpBrowser.lpr"/>
</Position1>
@@ -81,6 +81,10 @@
<Filename Value="uExternalPumpBrowser.pas"/>
<Caret Line="108" TopLine="72"/>
</Position9>
<Position10>
<Filename Value="uExternalPumpBrowser.pas"/>
<Caret Line="84" Column="43" TopLine="57"/>
</Position10>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -81,6 +81,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
private
@@ -175,7 +176,9 @@ procedure TExternalPumpBrowserFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -57,7 +57,8 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -8,8 +8,9 @@
<Unit0>
<Filename Value="FullScreenBrowser.lpr"/>
<IsPartOfProject Value="True"/>
<TopLine Value="34"/>
<CursorPos X="18" Y="49"/>
<IsVisibleTab Value="True"/>
<TopLine Value="39"/>
<CursorPos X="3" Y="61"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
@@ -20,17 +21,16 @@
<ComponentName Value="MainForm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="40"/>
<CursorPos X="3" Y="250"/>
<TopLine Value="87"/>
<CursorPos X="113" Y="252"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
<JumpHistory Count="2" HistoryIndex="1">
<JumpHistory Count="5" HistoryIndex="4">
<Position1>
<Filename Value="uMainForm.pas"/>
</Position1>
@@ -38,6 +38,18 @@
<Filename Value="uMainForm.pas"/>
<Caret Line="54" Column="14" TopLine="36"/>
</Position2>
<Position3>
<Filename Value="uMainForm.pas"/>
<Caret Line="77" Column="43" TopLine="52"/>
</Position3>
<Position4>
<Filename Value="uMainForm.pas"/>
<Caret Line="54" Column="3" TopLine="219"/>
</Position4>
<Position5>
<Filename Value="uMainForm.pas"/>
<Caret Line="246" Column="3" TopLine="219"/>
</Position5>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -1,13 +1,13 @@
object MainForm: TMainForm
Left = -8
Height = 327
Top = -8
Width = 450
Height = 673
Top = 0
Width = 1364
BorderIcons = []
BorderStyle = bsNone
Caption = 'MainForm'
ClientHeight = 327
ClientWidth = 450
ClientHeight = 673
ClientWidth = 1364
Color = clBtnFace
Font.Color = clWindowText
Font.Height = -11
@@ -16,13 +16,13 @@ object MainForm: TMainForm
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnShow = FormShow
LCLVersion = '2.0.1.0'
LCLVersion = '2.0.2.0'
WindowState = wsMaximized
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 296
Height = 673
Top = 0
Width = 442
Width = 1364
Align = alClient
TabOrder = 0
end

View File

@@ -51,7 +51,7 @@ uses
Controls, Forms, Dialogs, ExtCtrls,
{$ENDIF}
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFTypes, uCEFConstants,
{ExtCtrls,} uCEFWinControl;
uCEFWinControl;
type
TMainForm = class(TForm)
@@ -74,6 +74,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -165,7 +166,9 @@ procedure TMainForm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -55,7 +55,8 @@ uses
{$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE}
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.DisableFeatures := 'NetworkService';
if GlobalCEFApp.StartMainProcess then
begin

View File

@@ -8,9 +8,8 @@
<Unit0>
<Filename Value="JSDialogBrowser.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="36"/>
<CursorPos X="3" Y="53"/>
<TopLine Value="40"/>
<CursorPos X="32" Y="58"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
@@ -21,16 +20,17 @@
<ComponentName Value="JSDialogBrowserFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="69"/>
<CursorPos X="8" Y="103"/>
<TopLine Value="254"/>
<CursorPos X="39" Y="261"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
<JumpHistory Count="3" HistoryIndex="2">
<JumpHistory Count="4" HistoryIndex="3">
<Position1>
<Filename Value="JSDialogBrowser.lpr"/>
</Position1>
@@ -42,6 +42,10 @@
<Filename Value="uJSDialogBrowser.pas"/>
<Caret Line="103" Column="8" TopLine="69"/>
</Position3>
<Position4>
<Filename Value="uJSDialogBrowser.pas"/>
<Caret Line="88" Column="386" TopLine="70"/>
</Position4>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -85,7 +85,7 @@ type
FClosing : boolean; // Set to True in the CloseQuery event.
procedure Chromium_OnJsdialog(Sender: TObject; const browser: ICefBrowser; const originUrl: ustring; dialogType: TCefJsDialogType; const messageText, defaultPromptText: ustring; const callback: ICefJsDialogCallback; out suppressMessage: Boolean; out Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium_OnBeforePopup(Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame; const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean; const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo; var client: ICefClient; var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; var noJavascriptAccess: Boolean; var Result: Boolean);
procedure WMMove(var aMessage : TWMMove); message WM_MOVE;
procedure WMMoving(var aMessage : TMessage); message WM_MOVING;
@@ -257,7 +257,9 @@ procedure TJSDialogBrowserFrm.Chromium_OnBeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -4,12 +4,12 @@
<PathDelim Value="\"/>
<Version Value="11"/>
<BuildModes Active="Default"/>
<Units Count="8">
<Units Count="14">
<Unit0>
<Filename Value="JSEval.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="44"/>
<EditorIndex Value="1"/>
<TopLine Value="41"/>
<CursorPos X="76" Y="60"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
@@ -22,11 +22,11 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<TopLine Value="165"/>
<CursorPos X="52" Y="199"/>
<TopLine Value="513"/>
<CursorPos X="42" Y="533"/>
<UsageCount Value="21"/>
<Bookmarks Count="1">
<Item0 X="85" Y="473" ID="1"/>
<Item0 X="85" Y="477" ID="1"/>
</Bookmarks>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -73,133 +73,168 @@
</Unit6>
<Unit7>
<Filename Value="..\..\..\..\source\uCEFBinaryValue.pas"/>
<EditorIndex Value="1"/>
<EditorIndex Value="-1"/>
<TopLine Value="120"/>
<CursorPos Y="132"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
<Filename Value="..\..\..\..\source\uCEFCookieAccessFilter.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="199"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="..\..\..\..\source\uCEFResourceReadCallback.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="33"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<Filename Value="..\..\..\..\source\uCEFResourceRequestHandler.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="607"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="..\..\..\..\source\uCEFResourceSkipCallback.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="33"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\..\source\uCEFResourceHandler.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="331"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="..\..\..\..\source\uCEFRequestHandler.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="571"/>
<UsageCount Value="10"/>
</Unit13>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="uJSEval.pas"/>
<Caret Line="162" Column="79" TopLine="150"/>
<Caret Line="199" Column="51" TopLine="162"/>
</Position1>
<Position2>
<Filename Value="uJSEval.pas"/>
<Caret Line="48" Column="83" TopLine="35"/>
<Caret Line="228" Column="95" TopLine="196"/>
</Position2>
<Position3>
<Filename Value="uJSEval.pas"/>
<Caret Line="466" Column="48" TopLine="435"/>
<Caret Line="30" Column="122" TopLine="21"/>
</Position3>
<Position4>
<Filename Value="uJSEval.pas"/>
<Caret Line="465" Column="36" TopLine="435"/>
<Caret Line="55" Column="25" TopLine="21"/>
</Position4>
<Position5>
<Filename Value="uJSEval.pas"/>
<Caret Line="475" Column="75" TopLine="441"/>
<Caret Line="115" Column="25" TopLine="79"/>
</Position5>
<Position6>
<Filename Value="uJSEval.pas"/>
<Caret Line="468" Column="40" TopLine="450"/>
<Caret Line="15" Column="103"/>
</Position6>
<Position7>
<Filename Value="uJSEval.pas"/>
<Caret Line="62" Column="52" TopLine="43"/>
<Caret Line="64" Column="90" TopLine="26"/>
</Position7>
<Position8>
<Filename Value="uJSEval.pas"/>
<Caret Line="199" Column="51" TopLine="162"/>
<Caret Line="373" Column="76" TopLine="336"/>
</Position8>
<Position9>
<Filename Value="uJSEval.pas"/>
<Caret Line="228" Column="95" TopLine="196"/>
<Caret Line="470" Column="70" TopLine="433"/>
</Position9>
<Position10>
<Filename Value="uJSEval.pas"/>
<Caret Line="30" Column="122" TopLine="21"/>
<Caret Line="524" Column="40" TopLine="487"/>
</Position10>
<Position11>
<Filename Value="uJSEval.pas"/>
<Caret Line="55" Column="25" TopLine="21"/>
<Caret Line="555" Column="39" TopLine="518"/>
</Position11>
<Position12>
<Filename Value="uJSEval.pas"/>
<Caret Line="115" Column="25" TopLine="79"/>
<Caret Line="63" Column="18" TopLine="41"/>
</Position12>
<Position13>
<Filename Value="uJSEval.pas"/>
<Caret Line="15" Column="103"/>
<Caret Line="373" Column="76" TopLine="336"/>
</Position13>
<Position14>
<Filename Value="uJSEval.pas"/>
<Caret Line="64" Column="90" TopLine="26"/>
<Filename Value="JSEval.lpr"/>
<Caret Line="60" Column="76" TopLine="44"/>
</Position14>
<Position15>
<Filename Value="uJSEval.pas"/>
<Caret Line="373" Column="76" TopLine="336"/>
<Caret Line="125" Column="29" TopLine="114"/>
</Position15>
<Position16>
<Filename Value="uJSEval.pas"/>
<Caret Line="470" Column="70" TopLine="433"/>
<Caret Line="536" Column="38" TopLine="518"/>
</Position16>
<Position17>
<Filename Value="uJSEval.pas"/>
<Caret Line="524" Column="40" TopLine="487"/>
<Caret Line="511" Column="75" TopLine="499"/>
</Position17>
<Position18>
<Filename Value="uJSEval.pas"/>
<Caret Line="555" Column="39" TopLine="518"/>
<Caret Line="463" Column="50" TopLine="452"/>
</Position18>
<Position19>
<Filename Value="uJSEval.pas"/>
<Caret Line="63" Column="18" TopLine="41"/>
<Caret Line="372" TopLine="360"/>
</Position19>
<Position20>
<Filename Value="uJSEval.pas"/>
<Caret Line="373" Column="76" TopLine="336"/>
<Caret Line="54" Column="73" TopLine="24"/>
</Position20>
<Position21>
<Filename Value="JSEval.lpr"/>
<Caret Line="60" Column="76" TopLine="44"/>
<Filename Value="uJSEval.pas"/>
<Caret Line="51" Column="90" TopLine="24"/>
</Position21>
<Position22>
<Filename Value="uJSEval.pas"/>
<Caret Line="125" Column="29" TopLine="114"/>
<Caret Line="59" Column="37" TopLine="24"/>
</Position22>
<Position23>
<Filename Value="uJSEval.pas"/>
<Caret Line="536" Column="38" TopLine="518"/>
<Caret Line="181" Column="63" TopLine="162"/>
</Position23>
<Position24>
<Filename Value="uJSEval.pas"/>
<Caret Line="511" Column="75" TopLine="499"/>
<Filename Value="JSEval.lpr"/>
<Caret Line="60" Column="76" TopLine="41"/>
</Position24>
<Position25>
<Filename Value="uJSEval.pas"/>
<Caret Line="463" Column="50" TopLine="452"/>
<Caret Line="125" Column="11" TopLine="121"/>
</Position25>
<Position26>
<Filename Value="uJSEval.pas"/>
<Caret Line="372" TopLine="360"/>
<Caret Line="542" Column="86" TopLine="533"/>
</Position26>
<Position27>
<Filename Value="uJSEval.pas"/>
<Caret Line="54" Column="73" TopLine="24"/>
<Caret Line="94" Column="43" TopLine="77"/>
</Position27>
<Position28>
<Filename Value="uJSEval.pas"/>
<Caret Line="51" Column="90" TopLine="24"/>
<Caret Line="210" Column="39" TopLine="203"/>
</Position28>
<Position29>
<Filename Value="uJSEval.pas"/>
<Caret Line="59" Column="37" TopLine="24"/>
<Caret Line="86" Column="71" TopLine="76"/>
</Position29>
<Position30>
<Filename Value="uJSEval.pas"/>
<Caret Line="181" Column="63" TopLine="162"/>
<Caret Line="510" Column="62" TopLine="492"/>
</Position30>
</JumpHistory>
<RunParams>

View File

@@ -75,7 +75,7 @@ type
procedure FormShow(Sender: TObject);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1BeforeContextMenu(Sender: TObject;
const browser: ICefBrowser; const frame: ICefFrame;
@@ -91,6 +91,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser;
@@ -205,7 +206,9 @@ procedure TJSEvalFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -390,9 +393,10 @@ begin
end;
procedure ParseEvalJsAnswer(const pMessage : ICefProcessMessage;
pBrowser : ICefBrowser;
pReturnValue : ICefv8Value;
pException : ICefV8Exception);
const pBrowser : ICefBrowser;
const pFrame : ICefFrame;
const pReturnValue : ICefv8Value;
const pException : ICefV8Exception);
var
pAnswer : ICefProcessMessage;
strResult : String;
@@ -428,10 +432,10 @@ begin
end;
end;
pBrowser.SendProcessMessage(PID_BROWSER, pAnswer);
pFrame.SendProcessMessage(PID_BROWSER, pAnswer);
end;
procedure ParseBinaryValue(const pBrowser : ICefBrowser; const aBinaryValue : ICefBinaryValue);
procedure ParseBinaryValue(const pBrowser : ICefBrowser; const pFrame: ICefFrame; const aBinaryValue : ICefBinaryValue);
var
pAnswer : ICefProcessMessage;
TempBuffer : TBytes;
@@ -473,7 +477,7 @@ begin
'Encoded image : ' + TempEncodedStream.DataString;
if pAnswer.ArgumentList.SetString(0, TempString) then
pBrowser.SendProcessMessage(PID_BROWSER, pAnswer);
pFrame.SendProcessMessage(PID_BROWSER, pAnswer);
end;
end;
except
@@ -489,6 +493,7 @@ begin
end;
procedure RenderProcessHandler_OnProcessMessageReceivedEvent(const pBrowser : ICefBrowser;
const pFrame : ICefFrame;
uSourceProcess : TCefProcessId;
const pMessage : ICefProcessMessage;
var aHandled : boolean);
@@ -514,7 +519,7 @@ begin
if pV8Context.Enter then
begin
pV8Context.Eval(TempScript, '', 1, pReturnValue, pException);
ParseEvalJsAnswer(pMessage, pBrowser, pReturnValue, pException);
ParseEvalJsAnswer(pMessage, pBrowser, pFrame, pReturnValue, pException);
pV8Context.Exit;
end;
end;
@@ -525,7 +530,7 @@ begin
if (pMessage.Name = BINARY_PARAM_JS) then
begin
TempBinValue := pMessage.ArgumentList.GetBinary(0);
ParseBinaryValue(pBrowser, TempBinValue);
ParseBinaryValue(pBrowser, pFrame, TempBinValue);
aHandled := True;
end;
end;
@@ -534,11 +539,12 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnProcessMessageReceived := RenderProcessHandler_OnProcessMessageReceivedEvent;
GlobalCEFApp.SingleProcess := True;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSEvalFrm.Chromium1ProcessMessageReceived(Sender : TObject;
const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const message : ICefProcessMessage;
out Result : Boolean);

View File

@@ -8,7 +8,6 @@
<Unit0>
<Filename Value="JSExecutingFunctions.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="41"/>
<CursorPos X="17" Y="59"/>
<UsageCount Value="20"/>
@@ -21,9 +20,10 @@
<ComponentName Value="JSExecutingFunctionsFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="157"/>
<CursorPos X="73" Y="175"/>
<TopLine Value="206"/>
<CursorPos X="39" Y="213"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -53,7 +53,7 @@
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit4>
</Units>
<JumpHistory Count="2" HistoryIndex="1">
<JumpHistory Count="7" HistoryIndex="6">
<Position1>
<Filename Value="uJSExecutingFunctions.pas"/>
</Position1>
@@ -61,6 +61,26 @@
<Filename Value="uJSExecutingFunctions.pas"/>
<Caret Line="175" Column="73" TopLine="157"/>
</Position2>
<Position3>
<Filename Value="JSExecutingFunctions.lpr"/>
<Caret Line="59" Column="17" TopLine="41"/>
</Position3>
<Position4>
<Filename Value="uJSExecutingFunctions.pas"/>
<Caret Line="115" Column="11" TopLine="99"/>
</Position4>
<Position5>
<Filename Value="uJSExecutingFunctions.pas"/>
<Caret Line="176" Column="3" TopLine="163"/>
</Position5>
<Position6>
<Filename Value="uJSExecutingFunctions.pas"/>
<Caret Line="178" Column="41" TopLine="162"/>
</Position6>
<Position7>
<Filename Value="uJSExecutingFunctions.pas"/>
<Caret Line="87" Column="43" TopLine="84"/>
</Position7>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -84,6 +84,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormDestroy(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -152,6 +153,7 @@ begin
end;
procedure GlobalCEFApp_OnProcessMessageReceived(const browser : ICefBrowser;
const frame : ICefFrame;
sourceProcess : TCefProcessId;
const aMessage : ICefProcessMessage;
var aHandled : boolean);
@@ -174,6 +176,7 @@ begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.OnProcessMessageReceived := GlobalCEFApp_OnProcessMessageReceived;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExecutingFunctionsFrm.GoBtnClick(Sender: TObject);
@@ -206,7 +209,9 @@ procedure TJSExecutingFunctionsFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -22,8 +22,8 @@
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="377"/>
<CursorPos X="20" Y="410"/>
<TopLine Value="134"/>
<CursorPos X="59" Y="88"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -32,8 +32,11 @@
<Unit2>
<Filename Value="uTestExtensionHandler.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<EditorIndex Value="2"/>
<TopLine Value="41"/>
<CursorPos X="56" Y="94"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
@@ -47,10 +50,34 @@
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit3>
</Units>
<JumpHistory Count="1">
<JumpHistory Count="7" HistoryIndex="6">
<Position1>
<Filename Value="uJSExtension.pas"/>
</Position1>
<Position2>
<Filename Value="uJSExtension.pas"/>
<Caret Line="125" Column="23" TopLine="106"/>
</Position2>
<Position3>
<Filename Value="uJSExtension.pas"/>
<Caret Line="223" Column="56" TopLine="219"/>
</Position3>
<Position4>
<Filename Value="uJSExtension.pas"/>
<Caret Line="98" Column="43" TopLine="94"/>
</Position4>
<Position5>
<Filename Value="uJSExtension.pas"/>
<Caret Line="265" Column="39" TopLine="258"/>
</Position5>
<Position6>
<Filename Value="uTestExtensionHandler.pas"/>
<Caret Line="94" Column="56" TopLine="41"/>
</Position6>
<Position7>
<Filename Value="uJSExtension.pas"/>
<Caret Line="312" Column="54" TopLine="301"/>
</Position7>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -17,18 +17,18 @@ object JSExtensionFrm: TJSExtensionFrm
LCLVersion = '2.0.2.0'
object NavControlPnl: TPanel
Left = 0
Height = 30
Height = 21
Top = 0
Width = 978
Align = alTop
BevelOuter = bvNone
ClientHeight = 30
ClientHeight = 21
ClientWidth = 978
Enabled = False
TabOrder = 0
object Edit1: TEdit
Left = 0
Height = 30
Height = 21
Top = 0
Width = 947
Align = alClient
@@ -37,7 +37,7 @@ object JSExtensionFrm: TJSExtensionFrm
end
object GoBtn: TButton
Left = 947
Height = 30
Height = 21
Top = 0
Width = 31
Align = alRight
@@ -48,8 +48,8 @@ object JSExtensionFrm: TJSExtensionFrm
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 538
Top = 30
Height = 547
Top = 21
Width = 978
Align = alClient
TabOrder = 1

View File

@@ -85,7 +85,7 @@ type
const params: ICefContextMenuParams; commandId: Integer;
eventFlags: Cardinal; out Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
procedure Timer1Timer(Sender: TObject);
@@ -95,6 +95,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -220,6 +221,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitialized;
GlobalCEFApp.DisableFeatures := 'NetworkService';
{$IFDEF INTFLOG}
GlobalCEFApp.LogFile := 'debug.log';
@@ -259,7 +261,9 @@ procedure TJSExtensionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -305,7 +309,7 @@ begin
end;
procedure TJSExtensionFrm.Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
begin
Result := False;

View File

@@ -78,7 +78,7 @@ begin
msg := TCefProcessMessageRef.New(MOUSEOVER_MESSAGE_NAME);
msg.ArgumentList.SetString(0, arguments[0].GetStringValue);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
Result := True;
@@ -91,7 +91,7 @@ begin
msg := TCefProcessMessageRef.New(arguments[1].GetStringValue);
msg.ArgumentList.SetString(0, arguments[0].GetStringValue);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
end;
Result := True;

View File

@@ -8,8 +8,7 @@
<Unit0>
<Filename Value="JSExtensionWithFunction.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="41"/>
<TopLine Value="45"/>
<CursorPos X="17" Y="59"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
@@ -22,8 +21,8 @@
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<EditorIndex Value="1"/>
<TopLine Value="107"/>
<CursorPos X="11" Y="125"/>
<TopLine Value="63"/>
<CursorPos X="15" Y="78"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -32,8 +31,12 @@
<Unit2>
<Filename Value="uMyV8Handler.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="50"/>
<CursorPos X="74" Y="69"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
<Unit3>
@@ -53,7 +56,7 @@
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit4>
</Units>
<JumpHistory Count="3" HistoryIndex="2">
<JumpHistory Count="10" HistoryIndex="9">
<Position1>
<Filename Value="uJSExtensionWithFunction.pas"/>
</Position1>
@@ -65,6 +68,34 @@
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="151" Column="39" TopLine="133"/>
</Position3>
<Position4>
<Filename Value="JSExtensionWithFunction.lpr"/>
<Caret Line="59" Column="17" TopLine="45"/>
</Position4>
<Position5>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="104" Column="11" TopLine="94"/>
</Position5>
<Position6>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="77" Column="7" TopLine="68"/>
</Position6>
<Position7>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="179" Column="39" TopLine="172"/>
</Position7>
<Position8>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="79" Column="59" TopLine="57"/>
</Position8>
<Position9>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="198" Column="60" TopLine="188"/>
</Position9>
<Position10>
<Filename Value="uJSExtensionWithFunction.pas"/>
<Caret Line="78" Column="15" TopLine="63"/>
</Position10>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -17,18 +17,18 @@ object JSExtensionWithFunctionFrm: TJSExtensionWithFunctionFrm
LCLVersion = '2.0.2.0'
object NavControlPnl: TPanel
Left = 0
Height = 30
Height = 21
Top = 0
Width = 978
Align = alTop
BevelOuter = bvNone
ClientHeight = 30
ClientHeight = 21
ClientWidth = 978
Enabled = False
TabOrder = 0
object Edit1: TEdit
Left = 0
Height = 30
Height = 21
Top = 0
Width = 947
Align = alClient
@@ -37,7 +37,7 @@ object JSExtensionWithFunctionFrm: TJSExtensionWithFunctionFrm
end
object GoBtn: TButton
Left = 947
Height = 30
Height = 21
Top = 0
Width = 31
Align = alRight
@@ -48,8 +48,8 @@ object JSExtensionWithFunctionFrm: TJSExtensionWithFunctionFrm
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 536
Top = 30
Height = 545
Top = 21
Width = 978
Align = alClient
TabOrder = 1

View File

@@ -73,9 +73,10 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1ProcessMessageReceived(Sender: TObject;
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const browser: ICefBrowser; const frame: ICefFrame; sourceProcess: TCefProcessId;
const message: ICefProcessMessage; out Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -149,6 +150,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExtensionWithFunctionFrm.GoBtnClick(Sender: TObject);
@@ -173,7 +175,9 @@ procedure TJSExtensionWithFunctionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs
@@ -188,7 +192,7 @@ begin
end;
procedure TJSExtensionWithFunctionFrm.Chromium1ProcessMessageReceived(
Sender: TObject; const browser: ICefBrowser;
Sender: TObject; const browser: ICefBrowser; const frame: ICefFrame;
sourceProcess: TCefProcessId; const message: ICefProcessMessage;
out Result: Boolean);
begin

View File

@@ -69,7 +69,7 @@ begin
begin
msg := TCefProcessMessageRef.New(TEST_MESSAGE_NAME);
msg.ArgumentList.SetString(0, 'Message received!');
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
TCefv8ContextRef.Current.Browser.MainFrame.SendProcessMessage(PID_BROWSER, msg);
retval := TCefv8ValueRef.NewString('My Value!');
Result := True;

View File

@@ -8,9 +8,8 @@
<Unit0>
<Filename Value="JSExtensionWithObjectParameter.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="41"/>
<CursorPos X="17" Y="59"/>
<CursorPos X="93" Y="46"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
@@ -21,7 +20,10 @@
<ComponentName Value="JSExtensionWithObjectParameterFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="119"/>
<CursorPos X="43" Y="75"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
@@ -35,10 +37,22 @@
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit2>
</Units>
<JumpHistory Count="1">
<JumpHistory Count="4" HistoryIndex="3">
<Position1>
<Filename Value="uJSExtensionWithObjectParameter.pas"/>
</Position1>
<Position2>
<Filename Value="JSExtensionWithObjectParameter.lpr"/>
<Caret Line="46" Column="93" TopLine="41"/>
</Position2>
<Position3>
<Filename Value="uJSExtensionWithObjectParameter.pas"/>
<Caret Line="100" Column="11" TopLine="87"/>
</Position3>
<Position4>
<Filename Value="uJSExtensionWithObjectParameter.pas"/>
<Caret Line="181" Column="39" TopLine="151"/>
</Position4>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -17,18 +17,18 @@ object JSExtensionWithObjectParameterFrm: TJSExtensionWithObjectParameterFrm
LCLVersion = '2.0.2.0'
object NavControlPnl: TPanel
Left = 0
Height = 30
Height = 21
Top = 0
Width = 978
Align = alTop
BevelOuter = bvNone
ClientHeight = 30
ClientHeight = 21
ClientWidth = 978
Enabled = False
TabOrder = 0
object Edit1: TEdit
Left = 0
Height = 30
Height = 21
Top = 0
Width = 947
Align = alClient
@@ -37,7 +37,7 @@ object JSExtensionWithObjectParameterFrm: TJSExtensionWithObjectParameterFrm
end
object GoBtn: TButton
Left = 947
Height = 30
Height = 21
Top = 0
Width = 31
Align = alRight
@@ -48,8 +48,8 @@ object JSExtensionWithObjectParameterFrm: TJSExtensionWithObjectParameterFrm
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 559
Top = 30
Height = 568
Top = 21
Width = 978
Align = alClient
TabOrder = 1

View File

@@ -72,6 +72,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -152,6 +153,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSExtensionWithObjectParameterFrm.GoBtnClick(Sender: TObject);
@@ -177,6 +179,7 @@ procedure TJSExtensionWithObjectParameterFrm.Chromium1BeforePopup(
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -8,8 +8,7 @@
<Unit0>
<Filename Value="JSSimpleExtension.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="40"/>
<TopLine Value="44"/>
<CursorPos X="17" Y="58"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
@@ -21,17 +20,32 @@
<ComponentName Value="JSSimpleExtensionFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="53"/>
<CursorPos X="43" Y="75"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
<JumpHistory Count="1">
<JumpHistory Count="4" HistoryIndex="3">
<Position1>
<Filename Value="uJSSimpleExtension.pas"/>
</Position1>
<Position2>
<Filename Value="JSSimpleExtension.lpr"/>
<Caret Line="58" Column="17" TopLine="44"/>
</Position2>
<Position3>
<Filename Value="uJSSimpleExtension.pas"/>
<Caret Line="100" Column="11" TopLine="84"/>
</Position3>
<Position4>
<Filename Value="uJSSimpleExtension.pas"/>
<Caret Line="161" Column="39" TopLine="138"/>
</Position4>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -17,18 +17,18 @@ object JSSimpleExtensionFrm: TJSSimpleExtensionFrm
LCLVersion = '2.0.2.0'
object NavControlPnl: TPanel
Left = 0
Height = 30
Height = 21
Top = 0
Width = 978
Align = alTop
BevelOuter = bvNone
ClientHeight = 30
ClientHeight = 21
ClientWidth = 978
Enabled = False
TabOrder = 0
object Edit1: TEdit
Left = 0
Height = 30
Height = 21
Top = 0
Width = 947
Align = alClient
@@ -37,7 +37,7 @@ object JSSimpleExtensionFrm: TJSSimpleExtensionFrm
end
object GoBtn: TButton
Left = 947
Height = 30
Height = 21
Top = 0
Width = 31
Align = alRight
@@ -48,8 +48,8 @@ object JSSimpleExtensionFrm: TJSSimpleExtensionFrm
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 559
Top = 30
Height = 568
Top = 21
Width = 978
Align = alClient
TabOrder = 1

View File

@@ -72,6 +72,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -139,6 +140,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnWebKitInitialized := GlobalCEFApp_OnWebKitInitializedEvent;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSSimpleExtensionFrm.GoBtnClick(Sender: TObject);
@@ -156,7 +158,9 @@ procedure TJSSimpleExtensionFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

View File

@@ -8,7 +8,6 @@
<Unit0>
<Filename Value="JSSimpleWindowBinding.lpr"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<TopLine Value="40"/>
<CursorPos X="17" Y="58"/>
<UsageCount Value="20"/>
@@ -21,17 +20,48 @@
<ComponentName Value="JSSimpleWindowBindingFrm"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
<TopLine Value="56"/>
<CursorPos X="15" Y="84"/>
<UsageCount Value="20"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
<DefaultSyntaxHighlighter Value="Delphi"/>
</Unit1>
</Units>
<JumpHistory Count="1">
<JumpHistory Count="8" HistoryIndex="7">
<Position1>
<Filename Value="uJSSimpleWindowBinding.pas"/>
</Position1>
<Position2>
<Filename Value="JSSimpleWindowBinding.lpr"/>
<Caret Line="58" Column="17" TopLine="40"/>
</Position2>
<Position3>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="100" Column="11" TopLine="84"/>
</Position3>
<Position4>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="153" Column="39" TopLine="130"/>
</Position4>
<Position5>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="151" Column="19" TopLine="137"/>
</Position5>
<Position6>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="150" Column="65" TopLine="135"/>
</Position6>
<Position7>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="75" Column="43" TopLine="61"/>
</Position7>
<Position8>
<Filename Value="uJSSimpleWindowBinding.pas"/>
<Caret Line="158" Column="3" TopLine="147"/>
</Position8>
</JumpHistory>
<RunParams>
<FormatVersion Value="2"/>

View File

@@ -17,18 +17,18 @@ object JSSimpleWindowBindingFrm: TJSSimpleWindowBindingFrm
LCLVersion = '2.0.2.0'
object NavControlPnl: TPanel
Left = 0
Height = 30
Height = 21
Top = 0
Width = 978
Align = alTop
BevelOuter = bvNone
ClientHeight = 30
ClientHeight = 21
ClientWidth = 978
Enabled = False
TabOrder = 0
object Edit1: TEdit
Left = 0
Height = 30
Height = 21
Top = 0
Width = 947
Align = alClient
@@ -37,7 +37,7 @@ object JSSimpleWindowBindingFrm: TJSSimpleWindowBindingFrm
end
object GoBtn: TButton
Left = 947
Height = 30
Height = 21
Top = 0
Width = 31
Align = alRight
@@ -48,8 +48,8 @@ object JSSimpleWindowBindingFrm: TJSSimpleWindowBindingFrm
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 559
Top = 30
Height = 568
Top = 21
Width = 978
Align = alClient
TabOrder = 1

View File

@@ -72,6 +72,7 @@ type
targetDisposition: TCefWindowOpenDisposition; userGesture: Boolean;
const popupFeatures: TCefPopupFeatures; var windowInfo: TCefWindowInfo;
var client: ICefClient; var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean; var Result: Boolean);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
@@ -131,6 +132,7 @@ procedure CreateGlobalCEFApp;
begin
GlobalCEFApp := TCefApplication.Create;
GlobalCEFApp.OnContextCreated := GlobalCEFApp_OnContextCreated;
GlobalCEFApp.DisableFeatures := 'NetworkService';
end;
procedure TJSSimpleWindowBindingFrm.GoBtnClick(Sender: TObject);
@@ -148,7 +150,9 @@ procedure TJSSimpleWindowBindingFrm.Chromium1BeforePopup(Sender: TObject;
targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition;
userGesture: Boolean; const popupFeatures: TCefPopupFeatures;
var windowInfo: TCefWindowInfo; var client: ICefClient;
var settings: TCefBrowserSettings; var noJavascriptAccess: Boolean;
var settings: TCefBrowserSettings;
var extra_info: ICefDictionaryValue;
var noJavascriptAccess: Boolean;
var Result: Boolean);
begin
// For simplicity, this demo blocks all popup windows and new tabs

Some files were not shown because too many files have changed in this diff Show More