From 9e12b2258b6df13b4afdfadec672c880fe0977cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvador=20D=C3=ADaz=20Fau?= Date: Thu, 17 Jan 2019 14:53:02 +0100 Subject: [PATCH] Bug fix #154 Fixed an issue in SchemeRegistrationBrowser with big streams. Now THelloScheme.ReadResponse copies the stream in chunks correctly. --- bin/test.html | 2 ++ demos/SchemeRegistrationBrowser/uHelloScheme.pas | 6 ++++-- .../uSchemeRegistrationBrowser.dfm | 2 +- .../uSchemeRegistrationBrowser.pas | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bin/test.html b/bin/test.html index 75599aaf..90b8ec0e 100644 --- a/bin/test.html +++ b/bin/test.html @@ -13,5 +13,7 @@ Local SWF file.
You need to install the Adobe Flash PPAPI plugin to view the SWF file.

+


Bigger image

+ diff --git a/demos/SchemeRegistrationBrowser/uHelloScheme.pas b/demos/SchemeRegistrationBrowser/uHelloScheme.pas index 528510c2..0046dd3b 100644 --- a/demos/SchemeRegistrationBrowser/uHelloScheme.pas +++ b/demos/SchemeRegistrationBrowser/uHelloScheme.pas @@ -201,9 +201,11 @@ function THelloScheme.ReadResponse(const dataOut : Pointer; begin if (FStream <> nil) and (DataOut <> nil) then begin - FStream.Seek(0, soFromBeginning); + // This function will be called several times because the stream is bigger + // than bytesToRead. Each time we will copy a chunk of the stream to + // DataOut. BytesRead := FStream.Read(DataOut^, BytesToRead); - Result := True; + Result := (BytesRead > 0); end else Result := False; diff --git a/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm b/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm index 15e598e3..e685d44d 100644 --- a/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm +++ b/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.dfm @@ -52,7 +52,7 @@ object SchemeRegistrationBrowserFrm: TSchemeRegistrationBrowserFrm Align = alClient ItemIndex = 1 TabOrder = 1 - Text = 'hello://simplexsl.xml' + Text = 'hello://test.html' Items.Strings = ( 'https://www.google.com' 'hello://test.html') diff --git a/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas b/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas index 22ee30fa..f2e321bc 100644 --- a/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas +++ b/demos/SchemeRegistrationBrowser/uSchemeRegistrationBrowser.pas @@ -51,7 +51,7 @@ uses Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Types, ComCtrls, ClipBrd, {$ENDIF} uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFApplication, uCEFSchemeRegistrar, - uCEFTypes, uCEFConstants; + uCEFTypes, uCEFConstants, uCEFWinControl; const MINIBROWSER_CONTEXTMENU_REGSCHEME = MENU_ID_USER_FIRST + 1;