Странно, что так мало ресурсов по Delphi/FPC+CEF3. Вероятно, это связано с малой вообще популярностью этих языков. Но я кое-что уже сам наковырял из исходников. Например, теперь умею ажнык двумя способами вынимать текст из браузера: через GetSourceProc и GetSource.
GetSource лучше тем, что в обработчик можно параметры передавать. Странновато, что процедура в GetSourceProc объявлена как единственный стринг без доп. параметров.
Ну и про передачу сообщений, вроде бы, разобрался. Там, по сути, идеологически не особо сложно: в API задействованы всего два PID-а, BROWSER и RENDERER. Проблема в организации безглючного взаимодействии процессов и отладке.
- Код: Выделить всё
- procedure StringVisitor(const str: ustring);
 begin
 MainForm.lbUrl.Caption := MainForm.crm.Browser.MainFrame.Url;
 MainForm.Memo1.Lines.Text := str;
 end;
 procedure TMainForm.crmLoadEnd(Sender: TObject;
 const Browser: ICefBrowser; const Frame: ICefFrame; httpStatusCode: Integer);
 var
 res:boolean;
 begin
 if Assigned(Frame) and Frame.IsMain and (httpStatusCode = 200) then
 crm.Browser.MainFrame.GetSourceProc(@StringVisitor);
 end;
- Код: Выделить всё
- TCefStringVisitor = class(TCefStringVisitorOwn)
 private
 FBrowser: ICefBrowser;
 protected
 procedure Visit(const str: ustring); override;
 constructor Create(const browser: ICefBrowser);
 end;
 procedure TCefStringVisitor.Visit(const str: ustring);
 begin
 MainForm.lbUrl.Caption := MainForm.crm.Browser.MainFrame.Url;
 MainForm.Memo1.Lines.Text := str;
 end;
 constructor TCefStringVisitor.Create(const browser: ICefBrowser);
 begin
 inherited Create;
 FBrowser := browser;
 end;
 procedure TMainForm.crmLoadEnd(Sender: TObject;
 const Browser: ICefBrowser; const Frame: ICefFrame; httpStatusCode: Integer);
 var
 res:boolean;
 begin
 if Assigned(Frame) and Frame.IsMain and (httpStatusCode = 200) then
 crm.Browser.MainFrame.GetSource(TCefStringVisitor.Create(Browser));
 end;




 
  
 последние тесты показывали что и динамическая подгрузка необходимых длл вполне таки работает в лине.
 последние тесты показывали что и динамическая подгрузка необходимых длл вполне таки работает в лине. 