Re: How to edit source HTML code before render
Posted: Tue Aug 07, 2018 3:25 pm
Thanks Salvador, I'm still experimenting myself and will wait for your demo.
In dcef3 i used solve, if in short
Work nice, and now translate project on a new chromium using your component and this way to leads to hang render processes.
In dcef3 i used solve, if in short
Code: Select all
type
TWebInterceptHandler = class(TCefResourceHandlerOwn)
private
FDataStream: TMemoryStream;
FResponseHeadersReadyCallback: ICefCallback;
FOffsetRead: NativeUInt;
FResponse: ICefResponse;
protected
function ProcessRequest(const Request: ICefRequest;
const Callback: ICefCallback): Boolean; override;
procedure GetResponseHeaders(const Response: ICefResponse;
out ResponseLength: Int64; out RedirectUrl: ustring); override;
function ReadResponse(const DataOut: Pointer; BytesToRead: Integer;
var BytesRead: Integer; const Callback: ICefCallback): Boolean; override;
public
constructor Create(const Browser: ICefBrowser; const Frame: ICefFrame;
const SchemeName: ustring; const Request: ICefRequest); override;
destructor Destroy; override;
end;
type
TWebInterceptHandlerClient = class(TCefUrlRequestClientOwn)
private
FResourceHandler: TWebInterceptHandler;
protected
procedure OnDownloadData(const Request: ICefUrlRequest; Data: Pointer;
DataLength: NativeUInt); override;
procedure OnRequestComplete(const Request: ICefUrlRequest); override;
end;
procedure TWebInterceptHandlerClient.OnDownloadData(const Request
: ICefUrlRequest; Data: Pointer; DataLength: NativeUInt);
begin
inherited;
if (Request.GetRequest.ResourceType = RT_IMAGE) then
begin
if Request.GetRequest.Url='http://site.com/1.gif' then
FDataStream.LoadFromFile(pathtofile + '1.gif') else
FDataStream.Write(Data^, DataLength);
end else
FDataStream.Write(Data^, DataLength);
end;