Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.

Commit

Permalink
update Hook DOM sample and remove unused interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
hgourvest committed Nov 22, 2015
1 parent 02c0508 commit 6096b8e
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 56 deletions.
51 changes: 21 additions & 30 deletions demos/guiclient/main.pas
Expand Up @@ -128,12 +128,11 @@ TMainForm = class(TForm)
TCustomRenderProcessHandler = class(TCefRenderProcessHandlerOwn)
protected
procedure OnWebKitInitialized; override;
function OnProcessMessageReceived(const browser: ICefBrowser; sourceProcess: TCefProcessId;
const message: ICefProcessMessage): Boolean; override;
end;

TTestExtension = class
class function hello: string;
class procedure mouseover(const data: string);
end;

var
Expand Down Expand Up @@ -168,8 +167,16 @@ procedure TMainForm.actDocExecute(Sender: TObject);

procedure TMainForm.actDomExecute(Sender: TObject);
begin
crm.browser.SendProcessMessage(PID_RENDERER,
TCefProcessMessageRef.New('visitdom'));
if crm.Browser <> nil then
crm.Browser.MainFrame.ExecuteJavaScript(
'document.body.addEventListener("mouseover", function(evt){'+
'function getpath(n){'+
'var ret = "<" + n.nodeName + ">";'+
'if (n.parentNode){return getpath(n.parentNode) + ret} else '+
'return ret'+
'};'+
'app.mouseover(getpath(evt.target))}'+
')', 'about:blank', 0);
end;

procedure TMainForm.actExecuteJSExecute(Sender: TObject);
Expand Down Expand Up @@ -479,32 +486,6 @@ function getpath(const n: ICefDomNode): string;
Result := getpath(n.Parent) + Result;
end;

function TCustomRenderProcessHandler.OnProcessMessageReceived(
const browser: ICefBrowser; sourceProcess: TCefProcessId;
const message: ICefProcessMessage): Boolean;
begin
//{$IFDEF DELPHI14_UP}
// if (message.Name = 'visitdom') then
// begin
// browser.MainFrame.VisitDomProc(
// procedure(const doc: ICefDomDocument) begin
// doc.Body.AddEventListenerProc('mouseover', True,
// procedure (const event: ICefDomEvent)
// var
// msg: ICefProcessMessage;
// begin
// msg := TCefProcessMessageRef.New('mouseover');
// msg.ArgumentList.SetString(0, getpath(event.Target));
// browser.SendProcessMessage(PID_BROWSER, msg);
// end)
// end);
// Result := True;
// end
// else
//{$ENDIF}
Result := False;
end;

procedure TCustomRenderProcessHandler.OnWebKitInitialized;
begin
{$IFDEF DELPHI14_UP}
Expand All @@ -514,6 +495,15 @@ procedure TCustomRenderProcessHandler.OnWebKitInitialized;

{ TTestExtension }

class procedure TTestExtension.mouseover(const data: string);
var
msg: ICefProcessMessage;
begin
msg := TCefProcessMessageRef.New('mouseover');
msg.ArgumentList.SetString(0, data);
TCefv8ContextRef.Current.Browser.SendProcessMessage(PID_BROWSER, msg);
end;

class function TTestExtension.hello: string;
begin
Result := 'Hello from Delphi';
Expand All @@ -524,3 +514,4 @@ initialization
CefRenderProcessHandler := TCustomRenderProcessHandler.Create;
CefBrowserProcessHandler := TCefBrowserProcessHandlerOwn.Create;
end.

26 changes: 0 additions & 26 deletions src/ceflib.pas
Expand Up @@ -6985,32 +6985,6 @@ TCefResourceBundle = record
function Eof: Boolean;
end;

ICefDomEvent = interface(ICefBase)
['{2CBD2259-ADC6-4187-9008-A666B57695CE}']
function GetType: ustring;
function GetCategory: TCefDomEventCategory;
function GetPhase: TCefDomEventPhase;
function CanBubble: Boolean;
function CanCancel: Boolean;
function GetDocument: ICefDomDocument;
function GetTarget: ICefDomNode;
function GetCurrentTarget: ICefDomNode;

property EventType: ustring read GetType;
property Category: TCefDomEventCategory read GetCategory;
property Phase: TCefDomEventPhase read GetPhase;
property Bubble: Boolean read CanBubble;
property Cancel: Boolean read CanCancel;
property Document: ICefDomDocument read GetDocument;
property Target: ICefDomNode read GetTarget;
property CurrentTarget: ICefDomNode read GetCurrentTarget;
end;

ICefDomEventListener = interface(ICefBase)
['{68BABB49-1824-42D0-ACCC-FDE9F8D39B88}']
procedure HandleEvent(const event: ICefDomEvent);
end;

ICefDomNode = interface(ICefBase)
['{96C03C9E-9C98-491A-8DAD-1947332232D6}']
function GetType: TCefDomNodeType;
Expand Down

0 comments on commit 6096b8e

Please sign in to comment.