1
0
mirror of https://github.com/salvadordf/CEF4Delphi.git synced 2025-05-23 21:50:21 +02:00

Added support for Lazarus/FPC (windows 32bit)

This commit is contained in:
Salvador Díaz Fau 2018-05-12 14:50:54 +02:00
parent 294a245250
commit dd5f7f42c4
220 changed files with 6385 additions and 4281 deletions

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2017 Salvador Díaz Fau. All rights reserved. // Copyright © 2017 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2017 Salvador Díaz Fau. All rights reserved. // Copyright © 2017 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -0,0 +1,2 @@
rmdir /S /Q lib
rmdir /S /Q backup

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

View File

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectOptions>
<Version Value="10"/>
<PathDelim Value="\"/>
<General>
<SessionStorage Value="InProjectDir"/>
<MainUnit Value="0"/>
<Title Value="SimpleLazarusBrowser"/>
<ResourceType Value="res"/>
<UseXPManifest Value="True"/>
<Icon Value="0"/>
</General>
<BuildModes Count="1">
<Item1 Name="Default" Default="True"/>
</BuildModes>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<RunParams>
<local>
<FormatVersion Value="1"/>
</local>
</RunParams>
<RequiredPackages Count="2">
<Item1>
<PackageName Value="CEF4Delphi_Lazarus"/>
</Item1>
<Item2>
<PackageName Value="LCL"/>
</Item2>
</RequiredPackages>
<Units Count="2">
<Unit0>
<Filename Value="SimpleLazarusBrowser.lpr"/>
<IsPartOfProject Value="True"/>
</Unit0>
<Unit1>
<Filename Value="usimplelazarusbrowser.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uSimpleLazarusBrowser"/>
</Unit1>
</Units>
</ProjectOptions>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<Target>
<Filename Value="..\..\bin\SimpleLazarusBrowser"/>
</Target>
<SearchPaths>
<IncludeFiles Value="$(ProjOutDir)"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<Linking>
<Options>
<Win32>
<GraphicApplication Value="True"/>
</Win32>
</Options>
</Linking>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
<Item1>
<Name Value="EAbort"/>
</Item1>
<Item2>
<Name Value="ECodetoolError"/>
</Item2>
<Item3>
<Name Value="EFOpenError"/>
</Item3>
</Exceptions>
</Debugging>
</CONFIG>

View File

@ -0,0 +1,29 @@
program SimpleLazarusBrowser;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, uSimpleLazarusBrowser
{ you can add units after this }
,uCEFApplication;
{$R *.res}
begin
GlobalCEFApp := TCefApplication.Create;
if GlobalCEFApp.StartMainProcess then
begin
RequireDerivedFormResource:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end;
GlobalCEFApp.Free;
end.

View File

@ -0,0 +1,252 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<ProjectSession>
<PathDelim Value="\"/>
<Version Value="10"/>
<BuildModes Active="Default"/>
<Units Count="30">
<Unit0>
<Filename Value="SimpleLazarusBrowser.lpr"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/>
<CursorPos X="3" Y="26"/>
<UsageCount Value="33"/>
</Unit0>
<Unit1>
<Filename Value="usimplelazarusbrowser.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="uSimpleLazarusBrowser"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="-1"/>
<TopLine Value="166"/>
<CursorPos X="53" Y="110"/>
<UsageCount Value="33"/>
</Unit1>
<Unit2>
<Filename Value="..\..\source\uCEFChromium.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="34"/>
<CursorPos Y="49"/>
<UsageCount Value="16"/>
<Bookmarks Count="6">
<Item0 X="35" Y="771" ID="1"/>
<Item1 X="46" Y="119" ID="2"/>
<Item2 X="17" Y="843" ID="3"/>
<Item3 X="20" Y="621" ID="4"/>
<Item4 X="57" Y="3494" ID="5"/>
<Item5 X="3" Y="1079" ID="6"/>
</Bookmarks>
</Unit2>
<Unit3>
<Filename Value="E:\lazarus\fpc\3.0.4\source\rtl\win32\classes.pp"/>
<UnitName Value="Classes"/>
<EditorIndex Value="-1"/>
<TopLine Value="129"/>
<CursorPos X="5" Y="181"/>
<UsageCount Value="10"/>
</Unit3>
<Unit4>
<Filename Value="..\..\source\uCEFChromiumWindow.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="47"/>
<CursorPos Y="57"/>
<UsageCount Value="10"/>
</Unit4>
<Unit5>
<Filename Value="E:\lazarus\fpc\3.0.4\source\rtl\win\messages.pp"/>
<EditorIndex Value="-1"/>
<UsageCount Value="10"/>
</Unit5>
<Unit6>
<Filename Value="E:\lazarus\lcl\lmessages.pp"/>
<UnitName Value="LMessages"/>
<EditorIndex Value="-1"/>
<TopLine Value="100"/>
<UsageCount Value="10"/>
</Unit6>
<Unit7>
<Filename Value="..\..\source\uCEFWindowParent.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="36"/>
<CursorPos X="49" Y="160"/>
<UsageCount Value="10"/>
</Unit7>
<Unit8>
<Filename Value="..\..\source\uCEFWorkScheduler.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos X="15" Y="62"/>
<UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="..\..\source\uBufferPanel.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos X="36" Y="62"/>
<UsageCount Value="10"/>
</Unit9>
<Unit10>
<Filename Value="..\..\source\uCEFServerComponent.pas"/>
<EditorIndex Value="-1"/>
<WindowIndex Value="-1"/>
<TopLine Value="40"/>
<CursorPos Y="58"/>
<UsageCount Value="10"/>
</Unit10>
<Unit11>
<Filename Value="E:\lazarus\fpc\3.0.4\source\rtl\objpas\classes\classesh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1713"/>
<CursorPos X="5" Y="1726"/>
<UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="..\..\..\Lazarus\test - 001\mywincontrol.pas"/>
<UnitName Value="MyWinControl"/>
<EditorIndex Value="-1"/>
<UsageCount Value="10"/>
</Unit12>
<Unit13>
<Filename Value="..\..\source\uCEFBaseRefCounted.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="184"/>
<CursorPos Y="207"/>
<UsageCount Value="10"/>
</Unit13>
<Unit14>
<Filename Value="..\..\source\uCEFBrowser.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="145"/>
<CursorPos Y="164"/>
<UsageCount Value="11"/>
</Unit14>
<Unit15>
<Filename Value="..\..\source\uCEFValue.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="151"/>
<CursorPos X="38" Y="164"/>
<UsageCount Value="11"/>
</Unit15>
<Unit16>
<Filename Value="..\..\source\uCEFInterfaces.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="367"/>
<CursorPos X="14" Y="382"/>
<UsageCount Value="12"/>
</Unit16>
<Unit17>
<Filename Value="..\..\source\uCEFApplication.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1498"/>
<CursorPos X="50" Y="1521"/>
<UsageCount Value="11"/>
</Unit17>
<Unit18>
<Filename Value="C:\lazarus\lcl\forms.pp"/>
<UnitName Value="Forms"/>
<EditorIndex Value="-1"/>
<TopLine Value="556"/>
<CursorPos X="15" Y="581"/>
<UsageCount Value="11"/>
</Unit18>
<Unit19>
<Filename Value="C:\lazarus\lcl\include\customform.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1389"/>
<CursorPos X="3" Y="1398"/>
<UsageCount Value="11"/>
</Unit19>
<Unit20>
<Filename Value="C:\lazarus\lcl\controls.pp"/>
<UnitName Value="Controls"/>
<EditorIndex Value="-1"/>
<TopLine Value="2284"/>
<CursorPos X="3" Y="2307"/>
<UsageCount Value="11"/>
</Unit20>
<Unit21>
<Filename Value="C:\lazarus\lcl\lmessages.pp"/>
<UnitName Value="LMessages"/>
<EditorIndex Value="-1"/>
<TopLine Value="120"/>
<CursorPos X="3" Y="146"/>
<UsageCount Value="11"/>
</Unit21>
<Unit22>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\win\wininc\base.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="627"/>
<CursorPos X="6" Y="650"/>
<UsageCount Value="11"/>
</Unit22>
<Unit23>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\win64\classes.pp"/>
<UnitName Value="Classes"/>
<EditorIndex Value="-1"/>
<TopLine Value="24"/>
<CursorPos X="18" Y="38"/>
<UsageCount Value="10"/>
</Unit23>
<Unit24>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\win\wininc\messages.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="1321"/>
<CursorPos X="44" Y="1334"/>
<UsageCount Value="10"/>
</Unit24>
<Unit25>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\win32\classes.pp"/>
<UnitName Value="Classes"/>
<EditorIndex Value="-1"/>
<TopLine Value="114"/>
<CursorPos X="49" Y="105"/>
<UsageCount Value="10"/>
</Unit25>
<Unit26>
<Filename Value="C:\lazarus\fpc\3.0.4\source\rtl\inc\resh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="42"/>
<CursorPos X="10" Y="56"/>
<UsageCount Value="11"/>
</Unit26>
<Unit27>
<Filename Value="..\..\source\uCEFLibFunctions.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="33"/>
<CursorPos X="205" Y="308"/>
<UsageCount Value="11"/>
</Unit27>
<Unit28>
<Filename Value="..\..\source\uCEFTypes.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1248"/>
<UsageCount Value="11"/>
</Unit28>
<Unit29>
<Filename Value="..\..\source\uCEFMiscFunctions.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="106"/>
<CursorPos X="50" Y="124"/>
<UsageCount Value="10"/>
</Unit29>
</Units>
<General>
<ActiveWindowIndexAtStart Value="-1"/>
</General>
<JumpHistory HistoryIndex="-1"/>
</ProjectSession>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\..\source\uCEFChromium.pas"/>
<Line Value="2233"/>
</Item1>
</BreakPoints>
</Debugging>
</CONFIG>

Binary file not shown.

View File

@ -0,0 +1,68 @@
object Form1: TForm1
Left = 298
Height = 574
Top = 142
Width = 878
Caption = 'Initializing browser. Please wait...'
ClientHeight = 574
ClientWidth = 878
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
OnShow = FormShow
Position = poScreenCenter
LCLVersion = '1.8.2.0'
object AddressPnl: TPanel
Left = 0
Height = 23
Top = 0
Width = 878
Align = alTop
BevelOuter = bvNone
ClientHeight = 23
ClientWidth = 878
Enabled = False
TabOrder = 0
object AddressEdt: TEdit
Left = 0
Height = 23
Top = 0
Width = 843
Align = alClient
TabOrder = 0
Text = 'https://www.google.com'
end
object GoBtn: TButton
Left = 843
Height = 23
Top = 0
Width = 35
Align = alRight
Caption = 'Go'
OnClick = GoBtnClick
TabOrder = 1
end
end
object CEFWindowParent1: TCEFWindowParent
Left = 0
Height = 551
Top = 23
Width = 878
Align = alClient
TabOrder = 1
end
object Timer1: TTimer
Enabled = False
Interval = 500
OnTimer = Timer1Timer
left = 40
top = 64
end
object Chromium1: TChromium
OnBeforePopup = Chromium1BeforePopup
OnAfterCreated = Chromium1AfterCreated
OnBeforeClose = Chromium1BeforeClose
OnClose = Chromium1Close
left = 40
top = 136
end
end

View File

@ -0,0 +1,234 @@
// ************************************************************************
// ***************************** CEF4Delphi *******************************
// ************************************************************************
//
// CEF4Delphi is based on DCEF3 which uses CEF3 to embed a chromium-based
// browser in Delphi applications.
//
// The original license of DCEF3 still applies to CEF4Delphi.
//
// For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef
//
// Copyright © 2018 Salvador Diaz Fau. All rights reserved.
//
// ************************************************************************
// ************ vvvv Original license and comments below vvvv *************
// ************************************************************************
(*
* Delphi Chromium Embedded 3
*
* Usage allowed under the restrictions of the Lesser GNU General Public License
* or alternatively the restrictions of the Mozilla Public License 1.1
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
* the specific language governing rights and limitations under the License.
*
* Unit owner : Henri Gourvest <hgourvest@gmail.com>
* Web site : http://www.progdigy.com
* Repository : http://code.google.com/p/delphichromiumembedded/
* Group : http://groups.google.com/group/delphichromiumembedded
*
* Embarcadero Technologies, Inc is not permitted to use or redistribute
* this source code without explicit permission.
*
*)
unit uSimpleLazarusBrowser;
{$mode objfpc}{$H+}
interface
uses
Windows, Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
StdCtrls, LMessages,
uCEFChromium, uCEFWindowParent, uCEFInterfaces, uCEFConstants, uCEFTypes, uCEFChromiumEvents;
type
{ TForm1 }
TForm1 = class(TForm)
CEFWindowParent1: TCEFWindowParent;
Chromium1: TChromium;
GoBtn: TButton;
AddressEdt: TEdit;
AddressPnl: TPanel;
Timer1: TTimer;
procedure Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser
);
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 noJavascriptAccess: Boolean; var Result: Boolean);
procedure Chromium1Close(Sender: TObject; const browser: ICefBrowser; out
Result: Boolean);
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure GoBtnClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
protected
// Variables to control when can we destroy the form safely
FCanClose : boolean; // Set to True in TChromium.OnBeforeClose
FClosing : boolean; // Set to True in the CloseQuery event.
// 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;
// You also have to handle these two messages to set GlobalCEFApp.OsmodalLoop
procedure WMEnterMenuLoop(var aMessage: TMessage); message WM_ENTERMENULOOP;
procedure WMExitMenuLoop(var aMessage: TMessage); message WM_EXITMENULOOP;
procedure BrowserCreatedMsg(var aMessage : TMessage); message CEF_AFTERCREATED;
procedure BrowserDestroyMsg(var aMessage : TMessage); message CEF_DESTROY;
public
end;
var
Form1 : TForm1;
implementation
{$R *.lfm}
// This is a demo with the simplest web browser you can build using CEF4Delphi and
// it doesn't show any sign of progress like other web browsers do.
// Remember that it may take a few seconds to load if Windows update, your antivirus or
// any other windows service is using your hard drive.
// Depending on your internet connection it may take longer than expected.
// Please check that your firewall or antivirus are not blocking this application
// or the domain "google.com". If you don't live in the US, you'll be redirected to
// another domain which will take a little time too.
// This demo uses a TChromium and a TCEFWindowParent
uses
uCEFApplication;
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
FCanClose := False;
FClosing := False;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
CanClose := FCanClose;
if not(FClosing) then
begin
FClosing := True;
Visible := False;
Chromium1.CloseBrowser(True);
end;
end;
procedure TForm1.Chromium1AfterCreated(Sender: TObject; const browser: ICefBrowser);
begin
// Now the browser is fully initialized we can send a message to the main form to load the initial web page.
PostMessage(Handle, CEF_AFTERCREATED, 0, 0);
end;
procedure TForm1.Chromium1BeforeClose(Sender: TObject; const browser: ICefBrowser);
begin
FCanClose := True;
PostMessage(Handle, WM_CLOSE, 0, 0);
end;
procedure TForm1.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);
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]);
end;
procedure TForm1.Chromium1Close(Sender: TObject; const browser: ICefBrowser; out Result: Boolean);
begin
PostMessage(Handle, CEF_DESTROY, 0, 0);
Result := True;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
// You *MUST* call CreateBrowser to create and initialize the browser.
// This will trigger the AfterCreated event when the browser is fully
// initialized and ready to receive commands.
// GlobalCEFApp.GlobalContextInitialized has to be TRUE before creating any browser
// If it's not initialized yet, we use a simple timer to create the browser later.
//if not(Chromium1.CreateBrowser(CEFWindowParent1)) then Timer1.Enabled := True;
Chromium1.CreateBrowser(CEFWindowParent1);
end;
procedure TForm1.GoBtnClick(Sender: TObject);
begin
// This will load the URL in the edit box
Chromium1.LoadURL(UTF8Decode(AddressEdt.Text));
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False;
if not(Chromium1.CreateBrowser(CEFWindowParent1)) and not(Chromium1.Initialized) then
Timer1.Enabled := True;
end;
procedure TForm1.WMMove(var aMessage: TWMMove);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
end;
procedure TForm1.WMMoving(var aMessage: TMessage);
begin
inherited;
if (Chromium1 <> nil) then Chromium1.NotifyMoveOrResizeStarted;
end;
procedure TForm1.WMEnterMenuLoop(var aMessage: TMessage);
begin
inherited;
if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then GlobalCEFApp.OsmodalLoop := True;
end;
procedure TForm1.WMExitMenuLoop(var aMessage: TMessage);
begin
inherited;
if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then GlobalCEFApp.OsmodalLoop := False;
end;
procedure TForm1.BrowserCreatedMsg(var aMessage: TMessage);
begin
Caption := 'Simple Lazarus Browser';
AddressPnl.Enabled := True;
GoBtn.Click;
end;
procedure TForm1.BrowserDestroyMsg(var aMessage: TMessage);
begin
CEFWindowParent1.Free;
end;
end.

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -0,0 +1,7 @@
e:\lazarus\tools\lazres.exe ..\source\tbufferpanel.lrs tbufferpanel.png
e:\lazarus\tools\lazres.exe ..\source\tcefservercomponent.lrs tcefservercomponent.png
e:\lazarus\tools\lazres.exe ..\source\tcefwindowparent.lrs tcefwindowparent.png
e:\lazarus\tools\lazres.exe ..\source\tcefworkscheduler.lrs tcefworkscheduler.png
e:\lazarus\tools\lazres.exe ..\source\tchromium.lrs tchromium.png
e:\lazarus\tools\lazres.exe ..\source\tchromiumwindow.lrs tchromiumwindow.png
pause

View File

@ -6,8 +6,8 @@ del /s /q *.identcache
del /s /q *.stat del /s /q *.stat
del /s /q *.local del /s /q *.local
del /s /q *.~* del /s /q *.~*
rmdir Win32\Debug rmdir /S /Q Win32
rmdir Win32\Release rmdir /S /Q backup
rmdir Win32 rmdir /S /Q lib
rmdir __history rmdir /S /Q __history
rmdir __recovery rmdir /S /Q __recovery

View File

@ -130,7 +130,6 @@ contains
uCEFResponseFilter in '..\source\uCEFResponseFilter.pas', uCEFResponseFilter in '..\source\uCEFResponseFilter.pas',
uCEFImage in '..\source\uCEFImage.pas', uCEFImage in '..\source\uCEFImage.pas',
uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas', uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas',
uCEFv8Types in '..\source\uCEFv8Types.pas',
uCEFWindowParent in '..\source\uCEFWindowParent.pas', uCEFWindowParent in '..\source\uCEFWindowParent.pas',
uCEFChromium in '..\source\uCEFChromium.pas', uCEFChromium in '..\source\uCEFChromium.pas',
uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas', uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas',

View File

@ -128,7 +128,6 @@ contains
uCEFResponseFilter in '..\source\uCEFResponseFilter.pas', uCEFResponseFilter in '..\source\uCEFResponseFilter.pas',
uCEFImage in '..\source\uCEFImage.pas', uCEFImage in '..\source\uCEFImage.pas',
uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas', uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas',
uCEFv8Types in '..\source\uCEFv8Types.pas',
uCEFWindowParent in '..\source\uCEFWindowParent.pas', uCEFWindowParent in '..\source\uCEFWindowParent.pas',
uCEFChromium in '..\source\uCEFChromium.pas', uCEFChromium in '..\source\uCEFChromium.pas',
uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas', uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas',

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -9,22 +9,23 @@ package CEF4Delphi_FMX;
{$EXTENDEDSYNTAX ON} {$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON} {$IMPORTEDDATA ON}
{$IOCHECKS ON} {$IOCHECKS ON}
{$LOCALSYMBOLS OFF} {$LOCALSYMBOLS ON}
{$LONGSTRINGS ON} {$LONGSTRINGS ON}
{$OPENSTRINGS ON} {$OPENSTRINGS ON}
{$OPTIMIZATION ON} {$OPTIMIZATION OFF}
{$OVERFLOWCHECKS OFF} {$OVERFLOWCHECKS ON}
{$RANGECHECKS OFF} {$RANGECHECKS ON}
{$REFERENCEINFO OFF} {$REFERENCEINFO ON}
{$SAFEDIVIDE OFF} {$SAFEDIVIDE OFF}
{$STACKFRAMES OFF} {$STACKFRAMES ON}
{$TYPEDADDRESS OFF} {$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON} {$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF} {$WRITEABLECONST OFF}
{$MINENUMSIZE 1} {$MINENUMSIZE 1}
{$IMAGEBASE $400000} {$IMAGEBASE $400000}
{$DEFINE RELEASE} {$DEFINE DEBUG}
{$ENDIF IMPLICITBUILDING} {$ENDIF IMPLICITBUILDING}
{$DESCRIPTION 'CEF4Delphi'}
{$IMPLICITBUILD OFF} {$IMPLICITBUILD OFF}
requires requires
@ -130,7 +131,6 @@ contains
uCEFResponseFilter in '..\source\uCEFResponseFilter.pas', uCEFResponseFilter in '..\source\uCEFResponseFilter.pas',
uCEFImage in '..\source\uCEFImage.pas', uCEFImage in '..\source\uCEFImage.pas',
uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas', uCEFMenuModelDelegate in '..\source\uCEFMenuModelDelegate.pas',
uCEFv8Types in '..\source\uCEFv8Types.pas',
uCEFWindowParent in '..\source\uCEFWindowParent.pas', uCEFWindowParent in '..\source\uCEFWindowParent.pas',
uCEFChromium in '..\source\uCEFChromium.pas', uCEFChromium in '..\source\uCEFChromium.pas',
uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas', uCEFChromiumEvents in '..\source\uCEFChromiumEvents.pas',

View File

@ -241,7 +241,6 @@
<DCCReference Include="..\source\uCEFResponseFilter.pas"/> <DCCReference Include="..\source\uCEFResponseFilter.pas"/>
<DCCReference Include="..\source\uCEFImage.pas"/> <DCCReference Include="..\source\uCEFImage.pas"/>
<DCCReference Include="..\source\uCEFMenuModelDelegate.pas"/> <DCCReference Include="..\source\uCEFMenuModelDelegate.pas"/>
<DCCReference Include="..\source\uCEFv8Types.pas"/>
<DCCReference Include="..\source\uCEFWindowParent.pas"/> <DCCReference Include="..\source\uCEFWindowParent.pas"/>
<DCCReference Include="..\source\uCEFChromium.pas"/> <DCCReference Include="..\source\uCEFChromium.pas"/>
<DCCReference Include="..\source\uCEFChromiumEvents.pas"/> <DCCReference Include="..\source\uCEFChromiumEvents.pas"/>

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************

View File

@ -0,0 +1,577 @@
<?xml version="1.0" encoding="UTF-8"?>
<CONFIG>
<Package Version="4">
<PathDelim Value="\"/>
<Name Value="CEF4Delphi_Lazarus"/>
<Type Value="RunAndDesignTime"/>
<CompilerOptions>
<Version Value="11"/>
<PathDelim Value="\"/>
<SearchPaths>
<IncludeFiles Value="..\source"/>
<OtherUnitFiles Value="..\source"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
</CompilerOptions>
<Files Count="133">
<Item1>
<Filename Value="..\source\uCEFAccessibilityHandler.pas"/>
<UnitName Value="uCEFAccessibilityHandler"/>
</Item1>
<Item2>
<Filename Value="..\source\uCEFApp.pas"/>
<UnitName Value="uCEFApp"/>
</Item2>
<Item3>
<Filename Value="..\source\uCEFApplication.pas"/>
<UnitName Value="uCEFApplication"/>
</Item3>
<Item4>
<Filename Value="..\source\uCEFAuthCallback.pas"/>
<UnitName Value="uCEFAuthCallback"/>
</Item4>
<Item5>
<Filename Value="..\source\uCEFBaseRefCounted.pas"/>
<UnitName Value="uCEFBaseRefCounted"/>
</Item5>
<Item6>
<Filename Value="..\source\uCEFBaseScopedWrapper.pas"/>
<UnitName Value="uCEFBaseScopedWrapper"/>
</Item6>
<Item7>
<Filename Value="..\source\uCEFBeforeDownloadCallback.pas"/>
<UnitName Value="uCEFBeforeDownloadCallback"/>
</Item7>
<Item8>
<Filename Value="..\source\uCEFBinaryValue.pas"/>
<UnitName Value="uCEFBinaryValue"/>
</Item8>
<Item9>
<Filename Value="..\source\uCEFBrowser.pas"/>
<UnitName Value="uCEFBrowser"/>
</Item9>
<Item10>
<Filename Value="..\source\uCEFBrowserProcessHandler.pas"/>
<UnitName Value="uCEFBrowserProcessHandler"/>
</Item10>
<Item11>
<Filename Value="..\source\uCEFCallback.pas"/>
<UnitName Value="uCEFCallback"/>
</Item11>
<Item12>
<Filename Value="..\source\uCEFChromiumEvents.pas"/>
<UnitName Value="uCEFChromiumEvents"/>
</Item12>
<Item13>
<Filename Value="..\source\uCEFChromiumFontOptions.pas"/>
<UnitName Value="uCEFChromiumFontOptions"/>
</Item13>
<Item14>
<Filename Value="..\source\uCEFChromiumOptions.pas"/>
<UnitName Value="uCEFChromiumOptions"/>
</Item14>
<Item15>
<Filename Value="..\source\uCEFChromiumWindow.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uCEFChromiumWindow"/>
</Item15>
<Item16>
<Filename Value="..\source\uCEFClient.pas"/>
<UnitName Value="uCEFClient"/>
</Item16>
<Item17>
<Filename Value="..\source\uCEFCommandLine.pas"/>
<UnitName Value="uCEFCommandLine"/>
</Item17>
<Item18>
<Filename Value="..\source\uCEFCompletionCallback.pas"/>
<UnitName Value="uCEFCompletionCallback"/>
</Item18>
<Item19>
<Filename Value="..\source\uCEFConstants.pas"/>
<UnitName Value="uCEFConstants"/>
</Item19>
<Item20>
<Filename Value="..\source\uCEFContextMenuHandler.pas"/>
<UnitName Value="uCEFContextMenuHandler"/>
</Item20>
<Item21>
<Filename Value="..\source\uCEFContextMenuParams.pas"/>
<UnitName Value="uCEFContextMenuParams"/>
</Item21>
<Item22>
<Filename Value="..\source\uCEFCookieManager.pas"/>
<UnitName Value="uCEFCookieManager"/>
</Item22>
<Item23>
<Filename Value="..\source\uCEFCookieVisitor.pas"/>
<UnitName Value="uCEFCookieVisitor"/>
</Item23>
<Item24>
<Filename Value="..\source\uCEFCustomStreamReader.pas"/>
<UnitName Value="uCEFCustomStreamReader"/>
</Item24>
<Item25>
<Filename Value="..\source\uCEFDeleteCookiesCallback.pas"/>
<UnitName Value="uCEFDeleteCookiesCallback"/>
</Item25>
<Item26>
<Filename Value="..\source\uCEFDialogHandler.pas"/>
<UnitName Value="uCEFDialogHandler"/>
</Item26>
<Item27>
<Filename Value="..\source\uCEFDictionaryValue.pas"/>
<UnitName Value="uCEFDictionaryValue"/>
</Item27>
<Item28>
<Filename Value="..\source\uCEFDisplayHandler.pas"/>
<UnitName Value="uCEFDisplayHandler"/>
</Item28>
<Item29>
<Filename Value="..\source\uCEFDomDocument.pas"/>
<UnitName Value="uCEFDomDocument"/>
</Item29>
<Item30>
<Filename Value="..\source\uCEFDomNode.pas"/>
<UnitName Value="uCEFDomNode"/>
</Item30>
<Item31>
<Filename Value="..\source\uCEFDomVisitor.pas"/>
<UnitName Value="uCEFDomVisitor"/>
</Item31>
<Item32>
<Filename Value="..\source\uCEFDownloadHandler.pas"/>
<UnitName Value="uCEFDownloadHandler"/>
</Item32>
<Item33>
<Filename Value="..\source\uCEFDownloadImageCallBack.pas"/>
<UnitName Value="uCEFDownloadImageCallBack"/>
</Item33>
<Item34>
<Filename Value="..\source\uCEFDownLoadItem.pas"/>
<UnitName Value="uCEFDownLoadItem"/>
</Item34>
<Item35>
<Filename Value="..\source\uCEFDownloadItemCallback.pas"/>
<UnitName Value="uCEFDownloadItemCallback"/>
</Item35>
<Item36>
<Filename Value="..\source\uCEFDragData.pas"/>
<UnitName Value="uCEFDragData"/>
</Item36>
<Item37>
<Filename Value="..\source\uCEFDragHandler.pas"/>
<UnitName Value="uCEFDragHandler"/>
</Item37>
<Item38>
<Filename Value="..\source\uCEFEndTracingCallback.pas"/>
<UnitName Value="uCEFEndTracingCallback"/>
</Item38>
<Item39>
<Filename Value="..\source\uCEFExtension.pas"/>
<UnitName Value="uCEFExtension"/>
</Item39>
<Item40>
<Filename Value="..\source\uCEFExtensionHandler.pas"/>
<UnitName Value="uCEFExtensionHandler"/>
</Item40>
<Item41>
<Filename Value="..\source\uCEFFileDialogCallback.pas"/>
<UnitName Value="uCEFFileDialogCallback"/>
</Item41>
<Item42>
<Filename Value="..\source\uCEFFindHandler.pas"/>
<UnitName Value="uCEFFindHandler"/>
</Item42>
<Item43>
<Filename Value="..\source\uCEFFocusHandler.pas"/>
<UnitName Value="uCEFFocusHandler"/>
</Item43>
<Item44>
<Filename Value="..\source\uCEFFrame.pas"/>
<UnitName Value="uCEFFrame"/>
</Item44>
<Item45>
<Filename Value="..\source\uCEFGetExtensionResourceCallback.pas"/>
<UnitName Value="uCEFGetExtensionResourceCallback"/>
</Item45>
<Item46>
<Filename Value="..\source\uCEFImage.pas"/>
<UnitName Value="uCEFImage"/>
</Item46>
<Item47>
<Filename Value="..\source\uCEFInterfaces.pas"/>
<UnitName Value="uCEFInterfaces"/>
</Item47>
<Item48>
<Filename Value="..\source\uCEFJsDialogCallback.pas"/>
<UnitName Value="uCEFJsDialogCallback"/>
</Item48>
<Item49>
<Filename Value="..\source\uCEFJsDialogHandler.pas"/>
<UnitName Value="uCEFJsDialogHandler"/>
</Item49>
<Item50>
<Filename Value="..\source\uCEFKeyboardHandler.pas"/>
<UnitName Value="uCEFKeyboardHandler"/>
</Item50>
<Item51>
<Filename Value="..\source\uCEFLibFunctions.pas"/>
<UnitName Value="uCEFLibFunctions"/>
</Item51>
<Item52>
<Filename Value="..\source\uCEFLifeSpanHandler.pas"/>
<UnitName Value="uCEFLifeSpanHandler"/>
</Item52>
<Item53>
<Filename Value="..\source\uCEFListValue.pas"/>
<UnitName Value="uCEFListValue"/>
</Item53>
<Item54>
<Filename Value="..\source\uCEFLoadHandler.pas"/>
<UnitName Value="uCEFLoadHandler"/>
</Item54>
<Item55>
<Filename Value="..\source\uCEFMenuModel.pas"/>
<UnitName Value="uCEFMenuModel"/>
</Item55>
<Item56>
<Filename Value="..\source\uCEFMenuModelDelegate.pas"/>
<UnitName Value="uCEFMenuModelDelegate"/>
</Item56>
<Item57>
<Filename Value="..\source\uCEFMiscFunctions.pas"/>
<UnitName Value="uCEFMiscFunctions"/>
</Item57>
<Item58>
<Filename Value="..\source\uCEFNavigationEntry.pas"/>
<UnitName Value="uCEFNavigationEntry"/>
</Item58>
<Item59>
<Filename Value="..\source\uCEFNavigationEntryVisitor.pas"/>
<UnitName Value="uCEFNavigationEntryVisitor"/>
</Item59>
<Item60>
<Filename Value="..\source\uCEFPDFPrintCallback.pas"/>
<UnitName Value="uCEFPDFPrintCallback"/>
</Item60>
<Item61>
<Filename Value="..\source\uCEFPDFPrintOptions.pas"/>
<UnitName Value="uCEFPDFPrintOptions"/>
</Item61>
<Item62>
<Filename Value="..\source\uCEFPostData.pas"/>
<UnitName Value="uCEFPostData"/>
</Item62>
<Item63>
<Filename Value="..\source\uCEFPostDataElement.pas"/>
<UnitName Value="uCEFPostDataElement"/>
</Item63>
<Item64>
<Filename Value="..\source\uCEFPrintSettings.pas"/>
<UnitName Value="uCEFPrintSettings"/>
</Item64>
<Item65>
<Filename Value="..\source\uCEFProcessMessage.pas"/>
<UnitName Value="uCEFProcessMessage"/>
</Item65>
<Item66>
<Filename Value="..\source\uCEFRegisterCDMCallback.pas"/>
<UnitName Value="uCEFRegisterCDMCallback"/>
</Item66>
<Item67>
<Filename Value="..\source\uCEFRenderHandler.pas"/>
<UnitName Value="uCEFRenderHandler"/>
</Item67>
<Item68>
<Filename Value="..\source\uCEFRenderProcessHandler.pas"/>
<UnitName Value="uCEFRenderProcessHandler"/>
</Item68>
<Item69>
<Filename Value="..\source\uCEFRequest.pas"/>
<UnitName Value="uCEFRequest"/>
</Item69>
<Item70>
<Filename Value="..\source\uCEFRequestCallback.pas"/>
<UnitName Value="uCEFRequestCallback"/>
</Item70>
<Item71>
<Filename Value="..\source\uCEFRequestContext.pas"/>
<UnitName Value="uCEFRequestContext"/>
</Item71>
<Item72>
<Filename Value="..\source\uCEFRequestContextHandler.pas"/>
<UnitName Value="uCEFRequestContextHandler"/>
</Item72>
<Item73>
<Filename Value="..\source\uCEFRequestHandler.pas"/>
<UnitName Value="uCEFRequestHandler"/>
</Item73>
<Item74>
<Filename Value="..\source\uCEFResolveCallback.pas"/>
<UnitName Value="uCEFResolveCallback"/>
</Item74>
<Item75>
<Filename Value="..\source\uCEFResourceBundle.pas"/>
<UnitName Value="uCEFResourceBundle"/>
</Item75>
<Item76>
<Filename Value="..\source\uCEFResourceBundleHandler.pas"/>
<UnitName Value="uCEFResourceBundleHandler"/>
</Item76>
<Item77>
<Filename Value="..\source\uCEFResourceHandler.pas"/>
<UnitName Value="uCEFResourceHandler"/>
</Item77>
<Item78>
<Filename Value="..\source\uCEFResponse.pas"/>
<UnitName Value="uCEFResponse"/>
</Item78>
<Item79>
<Filename Value="..\source\uCEFResponseFilter.pas"/>
<UnitName Value="uCEFResponseFilter"/>
</Item79>
<Item80>
<Filename Value="..\source\uCEFRunContextMenuCallback.pas"/>
<UnitName Value="uCEFRunContextMenuCallback"/>
</Item80>
<Item81>
<Filename Value="..\source\uCEFRunFileDialogCallback.pas"/>
<UnitName Value="uCEFRunFileDialogCallback"/>
</Item81>
<Item82>
<Filename Value="..\source\uCEFSchemeHandlerFactory.pas"/>
<UnitName Value="uCEFSchemeHandlerFactory"/>
</Item82>
<Item83>
<Filename Value="..\source\uCEFSchemeRegistrar.pas"/>
<UnitName Value="uCEFSchemeRegistrar"/>
</Item83>
<Item84>
<Filename Value="..\source\uCEFSelectClientCertificateCallback.pas"/>
<UnitName Value="uCEFSelectClientCertificateCallback"/>
</Item84>
<Item85>
<Filename Value="..\source\uCEFSetCookieCallback.pas"/>
<UnitName Value="uCEFSetCookieCallback"/>
</Item85>
<Item86>
<Filename Value="..\source\uCEFSslInfo.pas"/>
<UnitName Value="uCEFSslInfo"/>
</Item86>
<Item87>
<Filename Value="..\source\uCEFSSLStatus.pas"/>
<UnitName Value="uCEFSSLStatus"/>
</Item87>
<Item88>
<Filename Value="..\source\uCEFStreamReader.pas"/>
<UnitName Value="uCEFStreamReader"/>
</Item88>
<Item89>
<Filename Value="..\source\uCEFStreamWriter.pas"/>
<UnitName Value="uCEFStreamWriter"/>
</Item89>
<Item90>
<Filename Value="..\source\uCEFStringList.pas"/>
<UnitName Value="uCEFStringList"/>
</Item90>
<Item91>
<Filename Value="..\source\uCEFStringMap.pas"/>
<UnitName Value="uCEFStringMap"/>
</Item91>
<Item92>
<Filename Value="..\source\uCEFStringMultimap.pas"/>
<UnitName Value="uCEFStringMultimap"/>
</Item92>
<Item93>
<Filename Value="..\source\uCEFStringVisitor.pas"/>
<UnitName Value="uCEFStringVisitor"/>
</Item93>
<Item94>
<Filename Value="..\source\uCEFTask.pas"/>
<UnitName Value="uCEFTask"/>
</Item94>
<Item95>
<Filename Value="..\source\uCEFTaskRunner.pas"/>
<UnitName Value="uCEFTaskRunner"/>
</Item95>
<Item96>
<Filename Value="..\source\uCEFThread.pas"/>
<UnitName Value="uCEFThread"/>
</Item96>
<Item97>
<Filename Value="..\source\uCEFTypes.pas"/>
<UnitName Value="uCEFTypes"/>
</Item97>
<Item98>
<Filename Value="..\source\uCEFUrlRequest.pas"/>
<UnitName Value="uCEFUrlRequest"/>
</Item98>
<Item99>
<Filename Value="..\source\uCEFUrlrequestClient.pas"/>
<UnitName Value="uCEFUrlrequestClient"/>
</Item99>
<Item100>
<Filename Value="..\source\uCEFv8Accessor.pas"/>
<UnitName Value="uCEFv8Accessor"/>
</Item100>
<Item101>
<Filename Value="..\source\uCEFv8ArrayBufferReleaseCallback.pas"/>
<UnitName Value="uCEFv8ArrayBufferReleaseCallback"/>
</Item101>
<Item102>
<Filename Value="..\source\uCEFv8Context.pas"/>
<UnitName Value="uCEFv8Context"/>
</Item102>
<Item103>
<Filename Value="..\source\uCEFV8Exception.pas"/>
<UnitName Value="uCEFV8Exception"/>
</Item103>
<Item104>
<Filename Value="..\source\uCEFv8Handler.pas"/>
<UnitName Value="uCEFv8Handler"/>
</Item104>
<Item105>
<Filename Value="..\source\uCEFv8Interceptor.pas"/>
<UnitName Value="uCEFv8Interceptor"/>
</Item105>
<Item106>
<Filename Value="..\source\uCEFv8StackFrame.pas"/>
<UnitName Value="uCEFv8StackFrame"/>
</Item106>
<Item107>
<Filename Value="..\source\uCEFv8StackTrace.pas"/>
<UnitName Value="uCEFv8StackTrace"/>
</Item107>
<Item108>
<Filename Value="..\source\uCEFv8Value.pas"/>
<UnitName Value="uCEFv8Value"/>
</Item108>
<Item109>
<Filename Value="..\source\uCEFValue.pas"/>
<UnitName Value="uCEFValue"/>
</Item109>
<Item110>
<Filename Value="..\source\uCEFWaitableEvent.pas"/>
<UnitName Value="uCEFWaitableEvent"/>
</Item110>
<Item111>
<Filename Value="..\source\uCEFWebPluginInfo.pas"/>
<UnitName Value="uCEFWebPluginInfo"/>
</Item111>
<Item112>
<Filename Value="..\source\uCEFWebPluginInfoVisitor.pas"/>
<UnitName Value="uCEFWebPluginInfoVisitor"/>
</Item112>
<Item113>
<Filename Value="..\source\uCEFWebPluginUnstableCallback.pas"/>
<UnitName Value="uCEFWebPluginUnstableCallback"/>
</Item113>
<Item114>
<Filename Value="..\source\uCEFWindowParent.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uCEFWindowParent"/>
</Item114>
<Item115>
<Filename Value="..\source\uCEFWorkScheduler.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uCEFWorkScheduler"/>
</Item115>
<Item116>
<Filename Value="..\source\uCEFWorkSchedulerThread.pas"/>
<UnitName Value="uCEFWorkSchedulerThread"/>
</Item116>
<Item117>
<Filename Value="..\source\uCEFWriteHandler.pas"/>
<UnitName Value="uCEFWriteHandler"/>
</Item117>
<Item118>
<Filename Value="..\source\uCEFX509Certificate.pas"/>
<UnitName Value="uCEFX509Certificate"/>
</Item118>
<Item119>
<Filename Value="..\source\uCEFX509CertPrincipal.pas"/>
<UnitName Value="uCEFX509CertPrincipal"/>
</Item119>
<Item120>
<Filename Value="..\source\uCEFXmlReader.pas"/>
<UnitName Value="uCEFXmlReader"/>
</Item120>
<Item121>
<Filename Value="..\source\uCEFZipReader.pas"/>
<UnitName Value="uCEFZipReader"/>
</Item121>
<Item122>
<Filename Value="..\source\uCEFChromium.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uCEFChromium"/>
</Item122>
<Item123>
<Filename Value="..\source\uBufferPanel.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uBufferPanel"/>
</Item123>
<Item124>
<Filename Value="..\source\uCEFServer.pas"/>
<UnitName Value="uCEFServer"/>
</Item124>
<Item125>
<Filename Value="..\source\uCEFServerComponent.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="uCEFServerComponent"/>
</Item125>
<Item126>
<Filename Value="..\source\uCEFServerEvents.pas"/>
<UnitName Value="uCEFServerEvents"/>
</Item126>
<Item127>
<Filename Value="..\source\uCEFServerHandler.pas"/>
<UnitName Value="uCEFServerHandler"/>
</Item127>
<Item128>
<Filename Value="..\source\tbufferpanel.lrs"/>
<Type Value="LRS"/>
</Item128>
<Item129>
<Filename Value="..\source\tcefservercomponent.lrs"/>
<Type Value="LRS"/>
</Item129>
<Item130>
<Filename Value="..\source\tcefwindowparent.lrs"/>
<Type Value="LRS"/>
</Item130>
<Item131>
<Filename Value="..\source\tcefworkscheduler.lrs"/>
<Type Value="LRS"/>
</Item131>
<Item132>
<Filename Value="..\source\tchromium.lrs"/>
<Type Value="LRS"/>
</Item132>
<Item133>
<Filename Value="..\source\tchromiumwindow.lrs"/>
<Type Value="LRS"/>
</Item133>
</Files>
<RequiredPkgs Count="3">
<Item1>
<PackageName Value="LCL"/>
</Item1>
<Item2>
<PackageName Value="LCLBase"/>
</Item2>
<Item3>
<PackageName Value="FCL"/>
</Item3>
</RequiredPkgs>
<UsageOptions>
<UnitPath Value="$(PkgOutDir)"/>
</UsageOptions>
<PublishOptions>
<Version Value="2"/>
</PublishOptions>
<CustomOptions Items="ExternHelp" Version="2">
<_ExternHelp Items="Count"/>
</CustomOptions>
</Package>
</CONFIG>

View File

@ -0,0 +1,64 @@
{ This file was automatically created by Lazarus. Do not edit!
This source is only used to compile and install the package.
}
unit CEF4Delphi_Lazarus;
{$warn 5023 off : no warning about unused units}
interface
uses
uCEFAccessibilityHandler, uCEFApp, uCEFApplication, uCEFAuthCallback,
uCEFBaseRefCounted, uCEFBaseScopedWrapper, uCEFBeforeDownloadCallback,
uCEFBinaryValue, uCEFBrowser, uCEFBrowserProcessHandler, uCEFCallback,
uCEFChromiumEvents, uCEFChromiumFontOptions, uCEFChromiumOptions,
uCEFChromiumWindow, uCEFClient, uCEFCommandLine, uCEFCompletionCallback,
uCEFConstants, uCEFContextMenuHandler, uCEFContextMenuParams,
uCEFCookieManager, uCEFCookieVisitor, uCEFCustomStreamReader,
uCEFDeleteCookiesCallback, uCEFDialogHandler, uCEFDictionaryValue,
uCEFDisplayHandler, uCEFDomDocument, uCEFDomNode, uCEFDomVisitor,
uCEFDownloadHandler, uCEFDownloadImageCallBack, uCEFDownLoadItem,
uCEFDownloadItemCallback, uCEFDragData, uCEFDragHandler,
uCEFEndTracingCallback, uCEFExtension, uCEFExtensionHandler,
uCEFFileDialogCallback, uCEFFindHandler, uCEFFocusHandler, uCEFFrame,
uCEFGetExtensionResourceCallback, uCEFImage, uCEFInterfaces,
uCEFJsDialogCallback, uCEFJsDialogHandler, uCEFKeyboardHandler,
uCEFLibFunctions, uCEFLifeSpanHandler, uCEFListValue, uCEFLoadHandler,
uCEFMenuModel, uCEFMenuModelDelegate, uCEFMiscFunctions,
uCEFNavigationEntry, uCEFNavigationEntryVisitor, uCEFPDFPrintCallback,
uCEFPDFPrintOptions, uCEFPostData, uCEFPostDataElement, uCEFPrintSettings,
uCEFProcessMessage, uCEFRegisterCDMCallback, uCEFRenderHandler,
uCEFRenderProcessHandler, uCEFRequest, uCEFRequestCallback,
uCEFRequestContext, uCEFRequestContextHandler, uCEFRequestHandler,
uCEFResolveCallback, uCEFResourceBundle, uCEFResourceBundleHandler,
uCEFResourceHandler, uCEFResponse, uCEFResponseFilter,
uCEFRunContextMenuCallback, uCEFRunFileDialogCallback,
uCEFSchemeHandlerFactory, uCEFSchemeRegistrar,
uCEFSelectClientCertificateCallback, uCEFSetCookieCallback, uCEFSslInfo,
uCEFSSLStatus, uCEFStreamReader, uCEFStreamWriter, uCEFStringList,
uCEFStringMap, uCEFStringMultimap, uCEFStringVisitor, uCEFTask,
uCEFTaskRunner, uCEFThread, uCEFTypes, uCEFUrlRequest, uCEFUrlrequestClient,
uCEFv8Accessor, uCEFv8ArrayBufferReleaseCallback, uCEFv8Context,
uCEFV8Exception, uCEFv8Handler, uCEFv8Interceptor, uCEFv8StackFrame,
uCEFv8StackTrace, uCEFv8Value, uCEFValue, uCEFWaitableEvent,
uCEFWebPluginInfo, uCEFWebPluginInfoVisitor, uCEFWebPluginUnstableCallback,
uCEFWindowParent, uCEFWorkScheduler, uCEFWorkSchedulerThread,
uCEFWriteHandler, uCEFX509Certificate, uCEFX509CertPrincipal, uCEFXmlReader,
uCEFZipReader, uCEFChromium, uBufferPanel, uCEFServer, uCEFServerComponent,
uCEFServerEvents, uCEFServerHandler, LazarusPackageIntf;
implementation
procedure Register;
begin
RegisterUnit('uCEFChromiumWindow', @uCEFChromiumWindow.Register);
RegisterUnit('uCEFWindowParent', @uCEFWindowParent.Register);
RegisterUnit('uCEFWorkScheduler', @uCEFWorkScheduler.Register);
RegisterUnit('uCEFChromium', @uCEFChromium.Register);
RegisterUnit('uBufferPanel', @uBufferPanel.Register);
RegisterUnit('uCEFServerComponent', @uCEFServerComponent.Register);
end;
initialization
RegisterPackage('CEF4Delphi_Lazarus', @Register);
end.

BIN
packages/tbufferpanel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 923 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 924 B

BIN
packages/tchromium.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 875 B

View File

@ -6,8 +6,7 @@ del /s /q *.identcache
del /s /q *.stat del /s /q *.stat
del /s /q *.local del /s /q *.local
del /s /q *.~* del /s /q *.~*
rmdir Win32\Debug rmdir /S /Q Win32
rmdir Win32\Release rmdir /S /Q backup
rmdir Win32 rmdir /S /Q __history
rmdir __history rmdir /S /Q __recovery
rmdir __recovery

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2017 Salvador Díaz Fau. All rights reserved. // Copyright © 2017 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -40,11 +40,6 @@
{$DEFINE DELPHI_VERSION_UNKNOW} {$DEFINE DELPHI_VERSION_UNKNOW}
{$IFDEF FPC}
{$DEFINE CEF_MULTI_THREADED_MESSAGE_LOOP}
{$DEFINE SUPPORTS_INLINE}
{$ENDIF}
// Delphi 5 // Delphi 5
{$IFDEF VER130} {$IFDEF VER130}
{$UNDEF DELPHI_VERSION_UNKNOW} {$UNDEF DELPHI_VERSION_UNKNOW}
@ -354,28 +349,31 @@
{$DEFINE DELPHI25_UP} {$DEFINE DELPHI25_UP}
{$ENDIF} {$ENDIF}
{$IFDEF FPC}
{$IFDEF DELPHI_VERSION_UNKNOW} {$DEFINE SUPPORTS_INLINE}
{$DEFINE DELPHI5_UP} {$ELSE}
{$DEFINE DELPHI6_UP} {$IFDEF DELPHI_VERSION_UNKNOW}
{$DEFINE DELPHI7_UP} {$DEFINE DELPHI5_UP}
{$DEFINE DELPHI8_UP} {$DEFINE DELPHI6_UP}
{$DEFINE DELPHI9_UP} {$DEFINE DELPHI7_UP}
{$DEFINE DELPHI10_UP} {$DEFINE DELPHI8_UP}
{$DEFINE DELPHI11_UP} {$DEFINE DELPHI9_UP}
{$DEFINE DELPHI12_UP} {$DEFINE DELPHI10_UP}
{$DEFINE DELPHI14_UP} {$DEFINE DELPHI11_UP}
{$DEFINE DELPHI15_UP} {$DEFINE DELPHI12_UP}
{$DEFINE DELPHI16_UP} {$DEFINE DELPHI14_UP}
{$DEFINE DELPHI17_UP} {$DEFINE DELPHI15_UP}
{$DEFINE DELPHI18_UP} {$DEFINE DELPHI16_UP}
{$DEFINE DELPHI19_UP} {$DEFINE DELPHI17_UP}
{$DEFINE DELPHI20_UP} {$DEFINE DELPHI18_UP}
{$DEFINE DELPHI21_UP} {$DEFINE DELPHI19_UP}
{$DEFINE DELPHI22_UP} {$DEFINE DELPHI20_UP}
{$DEFINE DELPHI23_UP} {$DEFINE DELPHI21_UP}
{$DEFINE DELPHI24_UP} {$DEFINE DELPHI22_UP}
{$DEFINE DELPHI25_UP} {$DEFINE DELPHI23_UP}
{$DEFINE DELPHI24_UP}
{$DEFINE DELPHI25_UP}
{$ENDIF}
{$ENDIF} {$ENDIF}
{$IFDEF DELPHI9_UP} {$IFDEF DELPHI9_UP}

9
source/tbufferpanel.lrs Normal file
View File

@ -0,0 +1,9 @@
LazarusResources.Add('tbufferpanel','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0#7'tIME'#7#226#5#11#10
+#31#1'?s'#163#134#0#0#0'_IDAT8'#203#237#149#177#13#192'@'#8#3#237'('#3'y'#255
+')'#204'D'#164'x'#233#147#250#161#137#132#11#228#234'd('#12'QSf.s'#3#176'}F'
+#145#180#253#133'&UA$#'#130'd'#21#180#206'b'#187'g5I='#160'I4'#137'&'#209#255
+#18#177#165#143#0'p'#183'7'#201'Jy'#191#160#136#168#254#147#165'oo'#30#204#7
+#197#194'RJ]'#169#215#177#0#0#0#0'IEND'#174'B`'#130
]);

View File

@ -0,0 +1,39 @@
LazarusResources.Add('tcefservercomponent','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#13#215#0#0#13#215#1'B('#155'x'#0#0#0#7'tIME'#7#226#5#11#10
+' (%'#31#17#214#0#0#3':IDAT8'#203#205'T]O#e'#20'>'#239#204#180'3'#210#233'n'
+#165#166#4#136'Ea'#145'&B*'#169'F'#8#152#172'B'#137'!ao'#12#23#198'{'#255#131
+#255#193'+'#255#3#198#11'oH'#16'#LbH(K'#22#200'*'#141#13'Q'#145'B'#150'Rh('
+#237'0'#157#175#247#227#236#197#140'M'#183'&'#155#221#132#11#207#213#204'y'
+#207#251#188#231'<'#207'9'#135' "'#220#133'IpG'#166#188#252#24#17#183#183#183
+#207#206#206#186#252#154#166#205#206#206#246#245#245#189'jF'#133'BA D{'#238
+'G'#180#184#172#198'H'#164#7'dMH*Q'#180#205#205#205#215#200#232#226#226#2'%m'
+'|b'#210#181#221'{'#201#4'" ""'#238#237'?M'#165'R'#221'@WWW'#134'a'#180'Y'''
+#132',..&'#18#137#224#151#163#248#246#251#199'>'#229#148'q'#202'8c'#194'g'
+#252#29#253#230#139#249#236#11'@'#142#227#236#239#239'///w'#202#183#190#190
+'>??'#175#235':'#0#8#206#175#155'6c'#130'2'#238'3'#238#186#212'lyo'#245#219
+']r'#203#185'\nnn'#206'q'#28#218'a'#163#163#163#134'ad2'#153'R'#169#228'3'
+#248#233#201#229#205#173#227#219#205#183'{n'#222#140#222#246#197#220#228#27
+#212'm5'#203#229'r'#177'Xl6'#155#233'tZa'#140#149'J%'#203#178':'#225#227#241
+'8'#165'4,Mp'#203#246#0#224#203#135#247's'#217')'#203'j'#9'!'#4'"'#138#192
+#208#167#172'P(('#129#198'/'#225'{<'#243#224#235#207'j'#0#144#25#30#180#153
+#156#157#152#140'j*J2e'#28#17'|'#198#127#219#219#209#20#174#0'@oo/c'#172#243
+'r2'#153'<99'#1#128't:m'#221#154#143'>'#255#20#17#203#229#242#147'?'#254#154
+#24'y'#215'k'#217'{'#127'V'#127#252#245#136'2'#225'S'#246#213''''#137'P'#181
+#235#235'kY'#150';'#129'j'#181'ZH'#161',W'#171#213'J'#165#18'4'#161#231#210
+#247#198#210#0#176#241#244'Y'#189#233'X'#182'g'#218#158#224#247#0#164'0'#163
+'j'#181'J'#8'i'#215#216#223#223#127'zz'#10#0'GGG333'#129#243#240#240#176#222
+'4'#127#248#229'wD|\<{v'#213#8#194'9'#231'!P4'#26'EDJ)"'#18'B'#132#16#158#231
+#5#151'GFFVVV'#132#16#154#166#13#14#14#218#142#247#205'w?w'#145#200#133#8'K'
+#171#213'j'#245'z='#30#143#147#127'M'#146#194#209#153#158#158'f'#140'Y'#150
+#149#207#231#215#214#214#30'~8<>'#220#232#2#250'h'#242#253#127#142#255'V'#2
+'F5M'#3#128'H$'#18'|'#4#173#24'N'#163'$'#17'B'#20'E1M'#243#227#220#7#178','#7
+'S'#18#200#141#136#231#231#231'CCC'#161#252#158#231#17'B|'#223'o'#181'Z'#1
+#175#151#151#151';;;'#0'p||'#172'i'#154'a'#24#142#227#148'J%'#206'y{1'#4#243
+'D'#8'I'#165'R'#225#208#186#174#219'%'#28#165'4'#232#210'X,'#150#205'fwww'
+#147#201'd.'#151'k'#7#152#166#25'<'#169#170#234#214#214#150#210'h4t]'#31#24
+#24' '#132#180#131't]WUuaa!X'#0#149'Jejj'#234#224#224'`uu'#245#191#29#171#170
+'j>'#159''''#27#27#27#197'bQ'#8#209'u<66'#182#180#180#244#234#27#146#180#133
+#127#193'KH$'#18'y'#173'UK'#254'w'#203#255#206#128#158#3' !'#207#160'u0#'#31
+#0#0#0#0'IEND'#174'B`'#130
]);

View File

@ -0,0 +1,13 @@
LazarusResources.Add('tcefwindowparent','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#13#215#0#0#13#215#1'B('#155'x'#0#0#0#7'tIME'#7#226#5#11#10
+#31'&'#154'y'#22#237#0#0#0#174'IDAT8'#203#173#148';'#14#196' '#12'D'#241#136
+#130#179' q'#255'+'#144#27#228#20'i'#144#136#20'18'#5#171#253#148#27#219#189
+#159#158#199#150'EU'#131'G'#197#214#218#190#239'FJ'#206'9'#212'ZI'#170#161'H'
+#214'ZA'#18#128'E'#7#0'I'#4#167'r'#3#197#16#194#156#211#7#180'2{'#140#16#145
+#143#145#15'HU-'#211#173#165#199'E!i'#9'HU_'#163'Y'#140#188'G'#179#27#173#222
+#184'('#150#140#0#204'9'#253#140#236#25#173#27't52f'#244#3#178#27#249#189#145
+#235#186#0#164#148','#151#221'{'#151#227'8'#182'm;'#207's'#140#241#239#15#16
+#17#17'I)'#149'R'#228#187#249'AR'#239#127#127#3#232'x'#222'a'#127#10#207#215
+#0#0#0#0'IEND'#174'B`'#130
]);

View File

@ -0,0 +1,40 @@
LazarusResources.Add('tcefworkscheduler','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#13#215#0#0#13#215#1'B('#155'x'#0#0#0#7'tIME'#7#226#5#11#10
+#31'4i'#192'g'#165#0#0#3';IDAT8'#203#173'U'#205'O'#227'F'#20#159'7'#227#196
+#31#17#182#217'%'#144#8#162#174'r'#235#194#17'q'#232#30#224#4'R'#247#216'p'
+#239'j'#213#3#255#206#246#180#221#254#29#28'8q'#5#129#132#132'XP'#18#208#2'q'
+#182#145'HHld'#207#216#243#209#195'T'#238'bR'#218'C'#223'i'#230#141#231#233
+#247'1'#239#25#148'R'#232#255#8'#_]^^'#222#223#223'c'#140#17'BB'#8')'#165'RJ'
+'J)'#132#208#153'<'#169#23'B'#136'Z'#173#182#182#182'V,$'#132'h6'#155#249#22
+#0'4X'#0'(dt('#165#186#221#238#20'D'#132#144#219#219#219'0'#12#1#160#209'h '
+#132#162'('#138#162#8'!'#164#183#133#0#0'B'#200#148'B'#250#236'i'#228#160'rh'
+#255#162#145#148#146#16'bY'#22#0'DQ'#164#137'X'#150#165#233'`'#140#25'c'#140
+'1'#132#144#235#186#207#21#210#23#178','#3#128','#203#132#16#221'n'#151'R'
+#170'K'#167'iZ'#169'T'#154#205'&!'#196#247#253#167'^'#227'o'#17#229'\'#226'8'
+'>991'#12'CJ'#153#166','#203'2'#206'9c'#236#224#224' '#142'c'#0#192#24'k'#127
+#167'#'#210'U'#164#148#237'v'#219'q'#28#140#225#205#155#31'L'#179#140'1'#166
+#148'}'#249'r'#157#166#233#233#233#169#227'8'#24#227#2#193'G'#133'0'#198#0
+#208#233'tfff'#0#224#237#219#31#29#199#161#148'r'#206#165#148'/^'#204#158#157
+#153'WWW'#23#23#23#203#203#203#5#237'q'#193'5'#203#178#146'$'#9#195#240#245
+#235#239'K'#165#18#0#152#166'Y*'#149#244#251'x'#245#234';)'#229'x<'#246'}'
+#223'q'#156'o'#149'*'#138#157#166')!D'#211'L'#146#4'!'#244#225#195#175'i'#202
+'vvv'#134#195#209'x|?77www7;;['#208#27'O'#213#200'0'#12#195'0('#165#31'?'#254
+#22'E'#15#147'I'#244#254#253'/'#159'?'#159#217#182#3#0#156's'#173#247'tDRJ'
+#207#243'<'#207';::b'#140'q'#158'}'#250#244'{'#171#245'S'#181'Z'#21'BPJ5'#144
+#193'`'#144'eY'#175#215'{Nl-'#211#252#252#252'p8'#236#245#250#239#222#253#140
+'1'#30#12#6#132#16#219#182'_'#190#156#11#130'~'#154#166#11#11#11#249'C'#153
+'N-M'#211#201'd'#178#178#178#18'E'#209#245#245'u'#167's'#25#199't4'#26#233
+#142#251#250#245#143#195#195'C!'#196#198#198#134#239#251#150'e=2*'#231'y||'
+#236#186'n'#24#134#24'c'#211'4www'#203#229'2!dqqQJ'#25#4#1'cLJ'#217'j'#181
+#234#245#186'RJ)u~~'#190#186#186#250#143#212#16'B'#181'Zm{{{ooo4'#26#181#219
+'m'#157#175#215#235#155#155#155#158#231'iA'#159'kZ'#207#243'|'#223#7#128#155
+#155#27#0#216#218#218'2M'#147'R'#10#0#149'J'#133's>'#153'L'#194'0l4'#26#133
+#217'T'#28'lO{'#218#182#237'J'#165#162#205#14#195'0'#191'<'#189'i'#149'RA'#16
+'h'#180#250#11#215'u='#207'3M3'#207'('#165#202#229#178#231'y'#174#235#230#25
+#206'y'#16#4#127'#'#138#227'8'#138'"'#198#152'6'#2#0#170#213#234#211#169'fY'
+#150#30')'#185#154#140#177#135#135#135'$Il'#219#254'+'#219#239#247#247#247
+#247'{'#189'^A'#197#194#172'('#28'---'#173#175#175#215#235#245'G'#246'SJ'#147
+'$'#225#156#255#215#255#143'a8'#142#163#233'#'#132#254#4#30'`'#249'[*'#162#29
+#135#0#0#0#0'IEND'#174'B`'#130
]);

50
source/tchromium.lrs Normal file
View File

@ -0,0 +1,50 @@
LazarusResources.Add('tchromium','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#11#19#0#0#11#19#1#0#154#156#24#0#0#0#7'tIME'#7#226#5#11#9
+#6#6'8Q!d'#0#0#4',IDAT8'#203#173#148#207'oTU'#20#199#207#185#247#190#247#230
+#205'L'#223#131#210'i'#25'J'#139#133'R!'#128'JX'#24#3#178'1,'#212'h'#130#11
+'w'#238't'#173'.t'#175'k'#255#5#227#206#173'k'#13'K$'#238#26#149#248#11#20#25
+'('#150#182'tf'#222#204'{'#247#221'_'#231#184#152'I'#5'A'#19#19#239#246'&'
+#159'|'#207#247'|'#207#23#245'H'#195#255#241#212#191#127'3'#243#246#160#2#132
+'N'#222'D'#196#255#6'b'#230#237'Aye'#253#247#155#155#197#221#221#154#25#16#0
+#145#23'g'#27#171#7#179#151#206#174#204#239'k='#14#197#191#141'6'#28#235'/'
+#174#253#248#245'O'#247#5#10#165#148'T'#10#1#24#0#24'|p'#206#185'@'#244#226
+#201#238#27#231'O'#228#237#230'?'#130'v'#139#241#199#159'_'#221#26#234'f'#154
+'J)'#4'N'#223'D&'#17#5'b'#31'BY'#233#133'<'#253#232#173#139#179'Y'#251#9#160
+#221#225#248#131'O'#175'l'#14't'#171#153'FRL@B '#0#2'03'#132#9#200#7#231#195
+#184#210#135'g['#159#188'si6o?'#226#145#247#254#203#239'7{;'#165'R'#170#172
+#173#20'('#133#144'b'#170#135#1#246'@'#129#136#136#165#138'n'#239#140'?'#251
+'j'#253#221#203'/('#165#166' f'#190'?(o'#149#209#145#165#229#222#157';'#160
+'$'#17'; '#0'xzy'#254#208'\'#6#0#158#192#19#2#0'"'#8#1#2'Q'#10'4'#206#22#165
+#222#159#181#17'Q'#1'@'#8#225#155'['#3#129'x'#242#196'j'#175'w'#215'9'#31'E*'
+'M'#162#183'_{'#222'R'#2'B'#8'D'#4'^:'#144'<('#3'#&'#17#166#145'L"'#164#224
+#183'+'#147#181#130#154#168'2'#198#220#29'x'#169#210'('#146#199#143#175#174
+#175#127#155'6'#27#239#191'y'#241#231'{'#30#165#137#148#0'@'#31#168#183'U'
+#189'|n'#190'r'#28#169#233#238#3#202#186#22#198#24#165#148#0#0'km'#223#8')'#5
+#0#28';'#186#212'j'#205#156'Z'#158'+'#180#24'i'#167'k_jWi'#167'k7*'#221'w'
+#191#13'gR'#185#183'))%Ie'#173#5#0#197#204#187#165'cff'#0#0#165#196#233'3'''
+#215#246#249'_'#255'(u'#237#189'"!'#16#0#136'!'#4#186#177'1'#186'pz'#174'v'
+#244'Pz'#193'8?'#5'y'#239#136#153#136#153#1#17#150#151#22#22'3'#218#188'1'#26
+#215'>'#146'('#4'"'#0'1'#248'@'#129'HI'#241'0'#133#152'='#17'3+'#0#200#26'"'
+#16#7'bb'#150#136'R`;'#207#142','#132#171'?'#236'()$'#2#0#18#179'''^'#233'6k'
+#23#246'@'#196#236#2'+'#197#204','#16'QI'#213#2'c'#172#243#129'&'#3'^'#223'('
+#207#159#154'7!'#12'*'#219#175'\'#191#178#253#202#218#16'.=7?'#212#254#161
+#161#130#211#149#20#18#17#5'"*'#165#230#26#193#24#231'='#237#177#214'7'#170
+#247'^_;{4'#183'!'#216#16#206#29#203'?'#188#188#166#226'i'#128#25' '#16'k'
+#227#216'j'#165#212'4Gq'#28#159#237'F7~!'#235'ir'#213'J'#138#173#194'n'#21
+#240#236#218#252#133'3'#221'@T'#232#176#163#233'P'#227'/'#138#241'T'#26'ZP.'
+#142#227'i'#178#147'$Y'#236'dO'#245#238#223'.'#1'Z'#233#196'B%'#133'@'#188
+#185'm'#0#192#216#144#167#242'x'#183'9]'#31#177#241#212#31#213#190#216':p'
+#168#157'$'#9#0#136'I'#28#178#153#236#194'J'#163'Az4'#214#181#13#198#6'c'#189
+'q'#193'yr'#158'B'#160'g'#150'Z'#204#224#194'DH'#216#25#234'bX'#28'nR6'#147
+'I)'#167' DL'#211'tq'#161#243#202'JhP5'#26'W'#181#241#181#9#181#245#218'x]'
+#251#165#217'$'#137#164'vT'#154'0'#212'asP'#245#135#197'a'#177'{'#176'3'#151
+#166#233#164'g'#166#230')'#165#242'<_Y'#14#175#194#198#181#222#224#246'8'#151
+#2#227'HE'#145#18#8#157','#30'T'#222'8_'#213#190#178'!'#170#182'VZ~y'#177#155
+#231#249#228#200#30#169#218'8'#142'g'#247#207'J!'#243#246'vos'#247#250#3#249
+#192'&'#131':Y'#238#180#238#245'u`'#22#182#140#252#184#171#170'n'''#239#204
+#29#204#243'|b'#243#147#171#214'{'#175#181'.FE1,'#198#229#216#24'c'#3#0'@,!I'
+#146'v'#171#157#229'Y6'#147#165'i'#186#167#229#201#160'I='#133#16#140'1'#214
+'Z'#239'=1'#1#192#164#194#227'8N'#146'DJ'#249'x'#249#255#9'w'#234#153' q'#137
+#228'z'#0#0#0#0'IEND'#174'B`'#130
]);

View File

@ -0,0 +1,38 @@
LazarusResources.Add('tchromiumwindow','PNG',[
#137'PNG'#13#10#26#10#0#0#0#13'IHDR'#0#0#0#24#0#0#0#24#8#2#0#0#0'o'#21#170#175
+#0#0#0#9'pHYs'#0#0#13#215#0#0#13#215#1'B('#155'x'#0#0#0#7'tIME'#7#226#5#11#10
+#31#18#187#205#226'X'#0#0#3#10'IDAT8'#203#173#149'Ml'#27'U'#16#199'g'#158'7'
+#222#197'Qk'#183'IIBl#'#156'JM'#12'V'#137#168#16'E *8Qn'#17' '#142#168#226
+#200#181#189'p'#228#128#212'['#213#3'\'#171#194#165'= TQ'#129'P'#131#26#138
+'d'#167#20'PE'#212'H'#9'_'#18'i'#226#218#241'G'#214'~'#187#222'}3'#195'a#w'
+#243'Q)'#144#206'i5o'#222'_3'#191#153'y'#139'"'#2#143#195','#215'u'#23#23#23
+#247#169'R,'#22#161'\.'#19#145#236#195#136#168'\.+"RJ'#237''''#29#165#20#17
+#237'I'#162'g'#246#192#232'Q'#7'k.\-'#223#191#241#253'M'#1#4#128#4#192#169
+#215'_}'#231#197#241#177#131#143#22'b'#230'm'#222'Oo5'#191#190'v'#205'NZ'#153
+'L'#26#5#1#128#133'ggg'#175'_'#15#222#255#224#204#187#147#187'4Z'#1#128#136
+'p'#204'.'#220'l^'#186#252#133#149't'#208'Jv'#180#239'j'#175#165#187#237#142
+'6'#146#224'D'#242#147#243#23#206']Y'#142#199'G'#3#180#153'Q'#127#154'j'#30
+#206#207#223'N$'#157#182#246#200#176#31#154#227#133#209#3#169#228'j'#203#183
+#5#6#149#12#165#7#239#222#254'a'#253#244'3'#135#156#205'+'#136#184')'#20'e'
+#20'y'#231#254#30'('#30'+'#212'j'#235'n'#167'{4w'#248#243#143#222'^m'#19#139
+'d3'#214#221#127#186':'#228#148'm'#245#180'k'#148'b'#14#251']'#3#0'+R!'#162
+#200'['#249'y!?>'#246#236'sS_~'#245#237#220#197'3'#31'_Y'#178#7#20'"z~xvfb'
+#249#129#7#28#218#142#179#244#231#253'L'#225'p'#31#144#136#168#168#180'X'#193
+'@l'#242#217#209#247'N'#191#242#203#239#27#141#166#214':'#208#186#215'r{'#183
+'~'#171#167#146#9'f'#16#129'-P'#153'w)'#141'X'#136#152#133#166'&'''#218#186
+'Wk{'#134#24#17'Z:'#232#6#6#128#1#0#1#12#131'!V'#24'+'#173#159'Q$'#20#132#20
+#24#177'mY'#217#8'_'#155#28'Zu'#189#7']'#31#1#12'K'#169#144#209#1'#'#2#3#244
+#136'@'#152#5#250#211'cE*}F'''#166#167#23#238'-'#140#28'9d)u'#227#158#251#217
+#135'/|sgMD'#222'x~'#196'0'#136#0' 4'#154#237'\6K'#180#209#135#205#204#219#25
+#189'<'#214#233't}'#207'7'#134#184#222#9#175#222'i'#13#13#165#237#212#224#210
+#154'oH'#16' 4'#208#236#132#25#232'lc'#180'} '#135#147#193'K'''#166'W'#170'u'
+#207#15'{'#129#17#162#229#170'n'#235#224#216'S'#131'!'#177#14#229#143#149'Zv'
+'|'#212#134'`'#247#129#140'o'#201'['#185#134#147'(}'#247#227#175#169''''#236
+'t'#250'`h'#248#228#241#225#182'G'#213'zk'#221#13#158#206#231'rV3'#190'T'#15
+#187#22'g'#20#217#169#145'F'#241#205#137#185'j'#166'2'#255#211#147#233#129
+#191'V'#209#13'h'#234'h'#225#228#145#214#1#171#190'5v'#171#208#206#189#29#182
+'{3'#249#234'L>'#23#243'U'#1'`G <d'#244'x'#222#236' '#8#148'R'#142#227#252'o'
+#9'D'#212'Zc'#163#209#168'T*'#158#231#25'c'#254#235#31#5#17#17#209'q'#156'R'
+#169#132#241#203';I'#237#229#193#142'>'#254#5'Ixq'#26'FW'#221'b'#0#0#0#0'IEN'
+'D'#174'B`'#130
]);

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uBufferPanel; unit uBufferPanel;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$I cef.inc} {$I cef.inc}
interface interface
@ -46,8 +50,13 @@ uses
{$IFDEF MSWINDOWS}Winapi.Windows, Winapi.Messages, Vcl.ExtCtrls, Vcl.Controls, Vcl.Graphics,{$ENDIF} {$IFDEF MSWINDOWS}Winapi.Windows, Winapi.Messages, Vcl.ExtCtrls, Vcl.Controls, Vcl.Graphics,{$ENDIF}
System.Classes, System.SyncObjs, System.SysUtils; System.Classes, System.SyncObjs, System.SysUtils;
{$ELSE} {$ELSE}
Windows, Messages, Classes, Controls, Windows, Classes, Forms, Controls, Graphics,
ExtCtrls, Graphics, SyncObjs, SysUtils; {$IFDEF FPC}
LCLProc, LCLType, LCLIntf, LResources, LMessages, InterfaceBase,
{$ELSE}
Messages,
{$ENDIF}
ExtCtrls, SyncObjs, SysUtils;
{$ENDIF} {$ENDIF}
type type
@ -98,9 +107,16 @@ type
property Alignment; property Alignment;
property Anchors; property Anchors;
property AutoSize; property AutoSize;
{$IFNDEF FPC}
property BevelEdges; property BevelEdges;
property BevelKind;
property Ctl3D;
property Locked;
property ParentBackground;
property ParentCtl3D;
property OnCanResize;
{$ENDIF}
property BevelInner; property BevelInner;
property BevelKind;
property BevelOuter; property BevelOuter;
property BevelWidth; property BevelWidth;
property BiDiMode; property BiDiMode;
@ -109,7 +125,6 @@ type
property Caption; property Caption;
property Color; property Color;
property Constraints; property Constraints;
property Ctl3D;
property UseDockManager default True; property UseDockManager default True;
property DockSite; property DockSite;
property DoubleBuffered; property DoubleBuffered;
@ -119,11 +134,8 @@ type
property Enabled; property Enabled;
property FullRepaint; property FullRepaint;
property Font; property Font;
property Locked;
property ParentBiDiMode; property ParentBiDiMode;
property ParentBackground;
property ParentColor; property ParentColor;
property ParentCtl3D;
property ParentFont; property ParentFont;
property ParentShowHint; property ParentShowHint;
property PopupMenu; property PopupMenu;
@ -131,7 +143,6 @@ type
property TabOrder; property TabOrder;
property TabStop; property TabStop;
property Visible; property Visible;
property OnCanResize;
property OnClick; property OnClick;
property OnConstrainedResize; property OnConstrainedResize;
property OnContextPopup; property OnContextPopup;
@ -179,6 +190,10 @@ type
{$ENDIF} {$ENDIF}
end; end;
{$IFDEF FPC}
procedure Register;
{$ENDIF}
implementation implementation
uses uses
@ -396,4 +411,12 @@ begin
end; end;
end; end;
{$IFDEF FPC}
procedure Register;
begin
{$I tbufferpanel.lrs}
RegisterComponents('Chromium', [TBufferPanel]);
end;
{$ENDIF}
end. end.

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFAccessibilityHandler; unit uCEFAccessibilityHandler;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -107,8 +111,8 @@ begin
with PCEFAccessibilityHandler(FData)^ do with PCEFAccessibilityHandler(FData)^ do
begin begin
on_accessibility_tree_change := cef_accessibility_handler_on_accessibility_tree_change; on_accessibility_tree_change := {$IFDEF FPC}@{$ENDIF}cef_accessibility_handler_on_accessibility_tree_change;
on_accessibility_location_change := cef_accessibility_handler_on_accessibility_location_change; on_accessibility_location_change := {$IFDEF FPC}@{$ENDIF}cef_accessibility_handler_on_accessibility_location_change;
end; end;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFApp; unit uCEFApp;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -198,11 +202,11 @@ begin
with PCefApp(FData)^ do with PCefApp(FData)^ do
begin begin
on_before_command_line_processing := cef_app_on_before_command_line_processing; on_before_command_line_processing := {$IFDEF FPC}@{$ENDIF}cef_app_on_before_command_line_processing;
on_register_custom_schemes := cef_app_on_register_custom_schemes; on_register_custom_schemes := {$IFDEF FPC}@{$ENDIF}cef_app_on_register_custom_schemes;
get_resource_bundle_handler := cef_app_get_resource_bundle_handler; get_resource_bundle_handler := {$IFDEF FPC}@{$ENDIF}cef_app_get_resource_bundle_handler;
get_browser_process_handler := cef_app_get_browser_process_handler; get_browser_process_handler := {$IFDEF FPC}@{$ENDIF}cef_app_get_browser_process_handler;
get_render_process_handler := cef_app_get_render_process_handler; get_render_process_handler := {$IFDEF FPC}@{$ENDIF}cef_app_get_render_process_handler;
end; end;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright Š 2018 Salvador az Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFApplication; unit uCEFApplication;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -126,7 +130,7 @@ type
FDisableWebSecurity : boolean; FDisableWebSecurity : boolean;
FChromeVersionInfo : TFileVersionInfo; FChromeVersionInfo : TFileVersionInfo;
FLibHandle : THandle; FLibHandle : THandle;
FOnRegisterCustomSchemes : TOnRegisterCustomSchemes; FOnRegisterCustomSchemes : TOnRegisterCustomSchemesEvent;
FAppSettings : TCefSettings; FAppSettings : TCefSettings;
FDeviceScaleFactor : single; FDeviceScaleFactor : single;
FCheckDevToolsResources : boolean; FCheckDevToolsResources : boolean;
@ -135,7 +139,7 @@ type
FMissingLibFiles : string; FMissingLibFiles : string;
FProcessType : TCefProcessType; FProcessType : TCefProcessType;
FShutdownWaitTime : cardinal; FShutdownWaitTime : cardinal;
FWidevinePath : string; FWidevinePath : ustring;
FMustFreeLibrary : boolean; FMustFreeLibrary : boolean;
FMustCreateResourceBundleHandler : boolean; FMustCreateResourceBundleHandler : boolean;
@ -346,11 +350,11 @@ type
property Status : TCefAplicationStatus read FStatus; property Status : TCefAplicationStatus read FStatus;
property MissingLibFiles : string read FMissingLibFiles; property MissingLibFiles : string read FMissingLibFiles;
property ShutdownWaitTime : cardinal read FShutdownWaitTime write FShutdownWaitTime; property ShutdownWaitTime : cardinal read FShutdownWaitTime write FShutdownWaitTime;
property WidevinePath : string read FWidevinePath write FWidevinePath; property WidevinePath : ustring read FWidevinePath write FWidevinePath;
property MustFreeLibrary : boolean read FMustFreeLibrary write FMustFreeLibrary; property MustFreeLibrary : boolean read FMustFreeLibrary write FMustFreeLibrary;
property ChildProcessesCount : integer read GetChildProcessesCount; property ChildProcessesCount : integer read GetChildProcessesCount;
property OnRegCustomSchemes : TOnRegisterCustomSchemes read FOnRegisterCustomSchemes write FOnRegisterCustomSchemes; property OnRegCustomSchemes : TOnRegisterCustomSchemesEvent read FOnRegisterCustomSchemes write FOnRegisterCustomSchemes;
// ICefBrowserProcessHandler // ICefBrowserProcessHandler
property OnContextInitialized : TOnContextInitializedEvent read FOnContextInitialized write FOnContextInitialized; property OnContextInitialized : TOnContextInitializedEvent read FOnContextInitialized write FOnContextInitialized;
@ -387,7 +391,12 @@ uses
{$IFDEF DELPHI16_UP} {$IFDEF DELPHI16_UP}
System.Math, System.IOUtils, System.SysUtils, {$IFDEF MSWINDOWS}WinApi.TlHelp32,{$ENDIF} System.Math, System.IOUtils, System.SysUtils, {$IFDEF MSWINDOWS}WinApi.TlHelp32,{$ENDIF}
{$ELSE} {$ELSE}
Math, {$IFDEF DELPHI14_UP}IOUtils,{$ENDIF} SysUtils, {$IFDEF MSWINDOWS}TlHelp32,{$ENDIF} Math, {$IFDEF DELPHI14_UP}IOUtils,{$ENDIF} SysUtils,
{$IFDEF FPC}
jwatlhelp32,
{$ELSE}
TlHelp32,
{$ENDIF}
{$ENDIF} {$ENDIF}
uCEFLibFunctions, uCEFMiscFunctions, uCEFCommandLine, uCEFConstants, uCEFLibFunctions, uCEFMiscFunctions, uCEFCommandLine, uCEFConstants,
uCEFSchemeHandlerFactory, uCEFCookieManager, uCEFApp, uCEFRegisterCDMCallback; uCEFSchemeHandlerFactory, uCEFCookieManager, uCEFApp, uCEFRegisterCDMCallback;
@ -818,7 +827,7 @@ begin
if FLibLoaded and if FLibLoaded and
not(FMultiThreadedMessageLoop) and not(FMultiThreadedMessageLoop) and
FExternalMessagePump then FExternalMessagePump then
cef_do_message_loop_work; cef_do_message_loop_work();
end; end;
procedure TCefApplication.RunMessageLoop; procedure TCefApplication.RunMessageLoop;
@ -826,7 +835,7 @@ begin
if FLibLoaded and if FLibLoaded and
not(FMultiThreadedMessageLoop) and not(FMultiThreadedMessageLoop) and
not(FExternalMessagePump) then not(FExternalMessagePump) then
cef_run_message_loop; cef_run_message_loop();
end; end;
procedure TCefApplication.QuitMessageLoop; procedure TCefApplication.QuitMessageLoop;
@ -834,7 +843,7 @@ begin
if FLibLoaded and if FLibLoaded and
not(FMultiThreadedMessageLoop) and not(FMultiThreadedMessageLoop) and
not(FExternalMessagePump) then not(FExternalMessagePump) then
cef_quit_message_loop; cef_quit_message_loop();
end; end;
procedure TCefApplication.SetOsmodalLoop(aValue : boolean); procedure TCefApplication.SetOsmodalLoop(aValue : boolean);
@ -851,7 +860,7 @@ procedure TCefApplication.ShutDown;
begin begin
try try
FStatus := asShuttingDown; FStatus := asShuttingDown;
if FLibLoaded then cef_shutdown; if FLibLoaded then cef_shutdown();
except except
on e : exception do on e : exception do
if CustomExceptionHandler('TCefApplication.ShutDown', e) then raise; if CustomExceptionHandler('TCefApplication.ShutDown', e) then raise;
@ -882,7 +891,7 @@ begin
try try
if (aApp <> nil) then if (aApp <> nil) then
begin begin
TempArgs.instance := HINSTANCE; TempArgs.instance := HINSTANCE{$IFDEF FPC}(){$ENDIF};
Result := cef_execute_process(@TempArgs, aApp.Wrap, FWindowsSandboxInfo); Result := cef_execute_process(@TempArgs, aApp.Wrap, FWindowsSandboxInfo);
end; end;
except except
@ -1130,7 +1139,7 @@ begin
InitializeCookies; InitializeCookies;
FGlobalContextInitialized := True; FGlobalContextInitialized := True;
if assigned(FOnContextInitialized) then FOnContextInitialized; if assigned(FOnContextInitialized) then FOnContextInitialized();
end; end;
procedure TCefApplication.Internal_OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine); procedure TCefApplication.Internal_OnBeforeChildProcessLaunch(const commandLine: ICefCommandLine);
@ -1176,7 +1185,7 @@ end;
procedure TCefApplication.Internal_OnWebKitInitialized; procedure TCefApplication.Internal_OnWebKitInitialized;
begin begin
if assigned(FOnWebKitInitialized) then FOnWebKitInitialized; if assigned(FOnWebKitInitialized) then FOnWebKitInitialized();
end; end;
procedure TCefApplication.Internal_OnBrowserCreated(const browser: ICefBrowser); procedure TCefApplication.Internal_OnBrowserCreated(const browser: ICefBrowser);
@ -1471,7 +1480,7 @@ begin
FLibLoaded := True; FLibLoaded := True;
Result := True; Result := True;
if FEnableHighDPISupport then cef_enable_highdpi_support; if FEnableHighDPISupport then cef_enable_highdpi_support();
end end
else else
begin begin
@ -1489,14 +1498,14 @@ end;
function TCefApplication.Load_cef_app_capi_h : boolean; function TCefApplication.Load_cef_app_capi_h : boolean;
begin begin
cef_initialize := GetProcAddress(FLibHandle, 'cef_initialize'); {$IFDEF FPC}Pointer({$ENDIF}cef_initialize{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_initialize');
cef_shutdown := GetProcAddress(FLibHandle, 'cef_shutdown'); {$IFDEF FPC}Pointer({$ENDIF}cef_shutdown{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_shutdown');
cef_execute_process := GetProcAddress(FLibHandle, 'cef_execute_process'); {$IFDEF FPC}Pointer({$ENDIF}cef_execute_process{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_execute_process');
cef_do_message_loop_work := GetProcAddress(FLibHandle, 'cef_do_message_loop_work'); {$IFDEF FPC}Pointer({$ENDIF}cef_do_message_loop_work{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_do_message_loop_work');
cef_run_message_loop := GetProcAddress(FLibHandle, 'cef_run_message_loop'); {$IFDEF FPC}Pointer({$ENDIF}cef_run_message_loop{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_run_message_loop');
cef_quit_message_loop := GetProcAddress(FLibHandle, 'cef_quit_message_loop'); {$IFDEF FPC}Pointer({$ENDIF}cef_quit_message_loop{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_quit_message_loop');
cef_set_osmodal_loop := GetProcAddress(FLibHandle, 'cef_set_osmodal_loop'); {$IFDEF FPC}Pointer({$ENDIF}cef_set_osmodal_loop{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_set_osmodal_loop');
cef_enable_highdpi_support := GetProcAddress(FLibHandle, 'cef_enable_highdpi_support'); {$IFDEF FPC}Pointer({$ENDIF}cef_enable_highdpi_support{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_enable_highdpi_support');
Result := assigned(cef_initialize) and Result := assigned(cef_initialize) and
assigned(cef_shutdown) and assigned(cef_shutdown) and
@ -1510,8 +1519,8 @@ end;
function TCefApplication.Load_cef_browser_capi_h : boolean; function TCefApplication.Load_cef_browser_capi_h : boolean;
begin begin
cef_browser_host_create_browser := GetProcAddress(FLibHandle, 'cef_browser_host_create_browser'); {$IFDEF FPC}Pointer({$ENDIF}cef_browser_host_create_browser{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_browser_host_create_browser');
cef_browser_host_create_browser_sync := GetProcAddress(FLibHandle, 'cef_browser_host_create_browser_sync'); {$IFDEF FPC}Pointer({$ENDIF}cef_browser_host_create_browser_sync{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_browser_host_create_browser_sync');
Result := assigned(cef_browser_host_create_browser) and Result := assigned(cef_browser_host_create_browser) and
assigned(cef_browser_host_create_browser_sync); assigned(cef_browser_host_create_browser_sync);
@ -1519,8 +1528,8 @@ end;
function TCefApplication.Load_cef_command_line_capi_h : boolean; function TCefApplication.Load_cef_command_line_capi_h : boolean;
begin begin
cef_command_line_create := GetProcAddress(FLibHandle, 'cef_command_line_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_command_line_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_command_line_create');
cef_command_line_get_global := GetProcAddress(FLibHandle, 'cef_command_line_get_global'); {$IFDEF FPC}Pointer({$ENDIF}cef_command_line_get_global{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_command_line_get_global');
Result := assigned(cef_command_line_create) and Result := assigned(cef_command_line_create) and
assigned(cef_command_line_get_global); assigned(cef_command_line_get_global);
@ -1528,9 +1537,9 @@ end;
function TCefApplication.Load_cef_cookie_capi_h : boolean; function TCefApplication.Load_cef_cookie_capi_h : boolean;
begin begin
cef_cookie_manager_get_global_manager := GetProcAddress(FLibHandle, 'cef_cookie_manager_get_global_manager'); {$IFDEF FPC}Pointer({$ENDIF}cef_cookie_manager_get_global_manager{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_cookie_manager_get_global_manager');
cef_cookie_manager_get_blocking_manager := GetProcAddress(FLibHandle, 'cef_cookie_manager_get_blocking_manager'); {$IFDEF FPC}Pointer({$ENDIF}cef_cookie_manager_get_blocking_manager{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_cookie_manager_get_blocking_manager');
cef_cookie_manager_create_manager := GetProcAddress(FLibHandle, 'cef_cookie_manager_create_manager'); {$IFDEF FPC}Pointer({$ENDIF}cef_cookie_manager_create_manager{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_cookie_manager_create_manager');
Result := assigned(cef_cookie_manager_get_global_manager) and Result := assigned(cef_cookie_manager_get_global_manager) and
assigned(cef_cookie_manager_get_blocking_manager) and assigned(cef_cookie_manager_get_blocking_manager) and
@ -1539,8 +1548,8 @@ end;
function TCefApplication.Load_cef_crash_util_h : boolean; function TCefApplication.Load_cef_crash_util_h : boolean;
begin begin
cef_crash_reporting_enabled := GetProcAddress(FLibHandle, 'cef_crash_reporting_enabled'); {$IFDEF FPC}Pointer({$ENDIF}cef_crash_reporting_enabled{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_crash_reporting_enabled');
cef_set_crash_key_value := GetProcAddress(FLibHandle, 'cef_set_crash_key_value'); {$IFDEF FPC}Pointer({$ENDIF}cef_set_crash_key_value{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_set_crash_key_value');
Result := assigned(cef_crash_reporting_enabled) and Result := assigned(cef_crash_reporting_enabled) and
assigned(cef_set_crash_key_value); assigned(cef_set_crash_key_value);
@ -1548,21 +1557,21 @@ end;
function TCefApplication.Load_cef_drag_data_capi_h : boolean; function TCefApplication.Load_cef_drag_data_capi_h : boolean;
begin begin
cef_drag_data_create := GetProcAddress(FLibHandle, 'cef_drag_data_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_drag_data_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_drag_data_create');
Result := assigned(cef_drag_data_create); Result := assigned(cef_drag_data_create);
end; end;
function TCefApplication.Load_cef_file_util_capi_h : boolean; function TCefApplication.Load_cef_file_util_capi_h : boolean;
begin begin
cef_create_directory := GetProcAddress(FLibHandle, 'cef_create_directory'); {$IFDEF FPC}Pointer({$ENDIF}cef_create_directory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_create_directory');
cef_get_temp_directory := GetProcAddress(FLibHandle, 'cef_get_temp_directory'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_temp_directory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_temp_directory');
cef_create_new_temp_directory := GetProcAddress(FLibHandle, 'cef_create_new_temp_directory'); {$IFDEF FPC}Pointer({$ENDIF}cef_create_new_temp_directory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_create_new_temp_directory');
cef_create_temp_directory_in_directory := GetProcAddress(FLibHandle, 'cef_create_temp_directory_in_directory'); {$IFDEF FPC}Pointer({$ENDIF}cef_create_temp_directory_in_directory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_create_temp_directory_in_directory');
cef_directory_exists := GetProcAddress(FLibHandle, 'cef_directory_exists'); {$IFDEF FPC}Pointer({$ENDIF}cef_directory_exists{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_directory_exists');
cef_delete_file := GetProcAddress(FLibHandle, 'cef_delete_file'); {$IFDEF FPC}Pointer({$ENDIF}cef_delete_file{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_delete_file');
cef_zip_directory := GetProcAddress(FLibHandle, 'cef_zip_directory'); {$IFDEF FPC}Pointer({$ENDIF}cef_zip_directory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_zip_directory');
cef_load_crlsets_file := GetProcAddress(FLibHandle, 'cef_load_crlsets_file'); {$IFDEF FPC}Pointer({$ENDIF}cef_load_crlsets_file{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_load_crlsets_file');
Result := assigned(cef_create_directory) and Result := assigned(cef_create_directory) and
assigned(cef_get_temp_directory) and assigned(cef_get_temp_directory) and
@ -1576,23 +1585,23 @@ end;
function TCefApplication.Load_cef_image_capi_h : boolean; function TCefApplication.Load_cef_image_capi_h : boolean;
begin begin
cef_image_create := GetProcAddress(FLibHandle, 'cef_image_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_image_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_image_create');
Result := assigned(cef_image_create); Result := assigned(cef_image_create);
end; end;
function TCefApplication.Load_cef_menu_model_capi_h : boolean; function TCefApplication.Load_cef_menu_model_capi_h : boolean;
begin begin
cef_menu_model_create := GetProcAddress(FLibHandle, 'cef_menu_model_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_menu_model_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_menu_model_create');
Result := assigned(cef_menu_model_create); Result := assigned(cef_menu_model_create);
end; end;
function TCefApplication.Load_cef_origin_whitelist_capi_h : boolean; function TCefApplication.Load_cef_origin_whitelist_capi_h : boolean;
begin begin
cef_add_cross_origin_whitelist_entry := GetProcAddress(FLibHandle, 'cef_add_cross_origin_whitelist_entry'); {$IFDEF FPC}Pointer({$ENDIF}cef_add_cross_origin_whitelist_entry{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_add_cross_origin_whitelist_entry');
cef_remove_cross_origin_whitelist_entry := GetProcAddress(FLibHandle, 'cef_remove_cross_origin_whitelist_entry'); {$IFDEF FPC}Pointer({$ENDIF}cef_remove_cross_origin_whitelist_entry{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_remove_cross_origin_whitelist_entry');
cef_clear_cross_origin_whitelist := GetProcAddress(FLibHandle, 'cef_clear_cross_origin_whitelist'); {$IFDEF FPC}Pointer({$ENDIF}cef_clear_cross_origin_whitelist{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_clear_cross_origin_whitelist');
Result := assigned(cef_add_cross_origin_whitelist_entry) and Result := assigned(cef_add_cross_origin_whitelist_entry) and
assigned(cef_remove_cross_origin_whitelist_entry) and assigned(cef_remove_cross_origin_whitelist_entry) and
@ -1601,18 +1610,18 @@ end;
function TCefApplication.Load_cef_parser_capi_h : boolean; function TCefApplication.Load_cef_parser_capi_h : boolean;
begin begin
cef_parse_url := GetProcAddress(FLibHandle, 'cef_parse_url'); {$IFDEF FPC}Pointer({$ENDIF}cef_parse_url{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_parse_url');
cef_create_url := GetProcAddress(FLibHandle, 'cef_create_url'); {$IFDEF FPC}Pointer({$ENDIF}cef_create_url{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_create_url');
cef_format_url_for_security_display := GetProcAddress(FLibHandle, 'cef_format_url_for_security_display'); {$IFDEF FPC}Pointer({$ENDIF}cef_format_url_for_security_display{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_format_url_for_security_display');
cef_get_mime_type := GetProcAddress(FLibHandle, 'cef_get_mime_type'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_mime_type{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_mime_type');
cef_get_extensions_for_mime_type := GetProcAddress(FLibHandle, 'cef_get_extensions_for_mime_type'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_extensions_for_mime_type{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_extensions_for_mime_type');
cef_base64encode := GetProcAddress(FLibHandle, 'cef_base64encode'); {$IFDEF FPC}Pointer({$ENDIF}cef_base64encode{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_base64encode');
cef_base64decode := GetProcAddress(FLibHandle, 'cef_base64decode'); {$IFDEF FPC}Pointer({$ENDIF}cef_base64decode{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_base64decode');
cef_uriencode := GetProcAddress(FLibHandle, 'cef_uriencode'); {$IFDEF FPC}Pointer({$ENDIF}cef_uriencode{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_uriencode');
cef_uridecode := GetProcAddress(FLibHandle, 'cef_uridecode'); {$IFDEF FPC}Pointer({$ENDIF}cef_uridecode{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_uridecode');
cef_parse_json := GetProcAddress(FLibHandle, 'cef_parse_json'); {$IFDEF FPC}Pointer({$ENDIF}cef_parse_json{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_parse_json');
cef_parse_jsonand_return_error := GetProcAddress(FLibHandle, 'cef_parse_jsonand_return_error'); {$IFDEF FPC}Pointer({$ENDIF}cef_parse_jsonand_return_error{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_parse_jsonand_return_error');
cef_write_json := GetProcAddress(FLibHandle, 'cef_write_json'); {$IFDEF FPC}Pointer({$ENDIF}cef_write_json{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_write_json');
Result := assigned(cef_parse_url) and Result := assigned(cef_parse_url) and
assigned(cef_create_url) and assigned(cef_create_url) and
@ -1630,37 +1639,37 @@ end;
function TCefApplication.Load_cef_path_util_capi_h : boolean; function TCefApplication.Load_cef_path_util_capi_h : boolean;
begin begin
cef_get_path := GetProcAddress(FLibHandle, 'cef_get_path'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_path{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_path');
Result := assigned(cef_get_path); Result := assigned(cef_get_path);
end; end;
function TCefApplication.Load_cef_print_settings_capi_h : boolean; function TCefApplication.Load_cef_print_settings_capi_h : boolean;
begin begin
cef_print_settings_create := GetProcAddress(FLibHandle, 'cef_print_settings_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_print_settings_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_print_settings_create');
Result := assigned(cef_print_settings_create); Result := assigned(cef_print_settings_create);
end; end;
function TCefApplication.Load_cef_process_message_capi_h : boolean; function TCefApplication.Load_cef_process_message_capi_h : boolean;
begin begin
cef_process_message_create := GetProcAddress(FLibHandle, 'cef_process_message_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_process_message_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_process_message_create');
Result := assigned(cef_process_message_create); Result := assigned(cef_process_message_create);
end; end;
function TCefApplication.Load_cef_process_util_capi_h : boolean; function TCefApplication.Load_cef_process_util_capi_h : boolean;
begin begin
cef_launch_process := GetProcAddress(FLibHandle, 'cef_launch_process'); {$IFDEF FPC}Pointer({$ENDIF}cef_launch_process{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_launch_process');
Result := assigned(cef_launch_process); Result := assigned(cef_launch_process);
end; end;
function TCefApplication.Load_cef_request_capi_h : boolean; function TCefApplication.Load_cef_request_capi_h : boolean;
begin begin
cef_request_create := GetProcAddress(FLibHandle, 'cef_request_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_request_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_request_create');
cef_post_data_create := GetProcAddress(FLibHandle, 'cef_post_data_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_post_data_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_post_data_create');
cef_post_data_element_create := GetProcAddress(FLibHandle, 'cef_post_data_element_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_post_data_element_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_post_data_element_create');
Result := assigned(cef_request_create) and Result := assigned(cef_request_create) and
assigned(cef_post_data_create) and assigned(cef_post_data_create) and
@ -1669,9 +1678,9 @@ end;
function TCefApplication.Load_cef_request_context_capi_h : boolean; function TCefApplication.Load_cef_request_context_capi_h : boolean;
begin begin
cef_request_context_get_global_context := GetProcAddress(FLibHandle, 'cef_request_context_get_global_context'); {$IFDEF FPC}Pointer({$ENDIF}cef_request_context_get_global_context{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_request_context_get_global_context');
cef_request_context_create_context := GetProcAddress(FLibHandle, 'cef_request_context_create_context'); {$IFDEF FPC}Pointer({$ENDIF}cef_request_context_create_context{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_request_context_create_context');
cef_create_context_shared := GetProcAddress(FLibHandle, 'cef_create_context_shared'); {$IFDEF FPC}Pointer({$ENDIF}cef_create_context_shared{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_create_context_shared');
Result := assigned(cef_request_context_get_global_context) and Result := assigned(cef_request_context_get_global_context) and
assigned(cef_request_context_create_context) and assigned(cef_request_context_create_context) and
@ -1680,29 +1689,29 @@ end;
function TCefApplication.Load_cef_resource_bundle_capi_h : boolean; function TCefApplication.Load_cef_resource_bundle_capi_h : boolean;
begin begin
cef_resource_bundle_get_global := GetProcAddress(FLibHandle, 'cef_resource_bundle_get_global'); {$IFDEF FPC}Pointer({$ENDIF}cef_resource_bundle_get_global{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_resource_bundle_get_global');
Result := assigned(cef_resource_bundle_get_global); Result := assigned(cef_resource_bundle_get_global);
end; end;
function TCefApplication.Load_cef_response_capi_h : boolean; function TCefApplication.Load_cef_response_capi_h : boolean;
begin begin
cef_response_create := GetProcAddress(FLibHandle, 'cef_response_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_response_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_response_create');
Result := assigned(cef_response_create); Result := assigned(cef_response_create);
end; end;
function TCefApplication.Load_cef_server_capi_h : boolean; function TCefApplication.Load_cef_server_capi_h : boolean;
begin begin
cef_server_create := GetProcAddress(FLibHandle, 'cef_server_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_server_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_server_create');
Result := assigned(cef_server_create); Result := assigned(cef_server_create);
end; end;
function TCefApplication.Load_cef_scheme_capi_h : boolean; function TCefApplication.Load_cef_scheme_capi_h : boolean;
begin begin
cef_register_scheme_handler_factory := GetProcAddress(FLibHandle, 'cef_register_scheme_handler_factory'); {$IFDEF FPC}Pointer({$ENDIF}cef_register_scheme_handler_factory{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_scheme_handler_factory');
cef_clear_scheme_handler_factories := GetProcAddress(FLibHandle, 'cef_clear_scheme_handler_factories'); {$IFDEF FPC}Pointer({$ENDIF}cef_clear_scheme_handler_factories{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_clear_scheme_handler_factories');
Result := assigned(cef_register_scheme_handler_factory) and Result := assigned(cef_register_scheme_handler_factory) and
assigned(cef_clear_scheme_handler_factories); assigned(cef_clear_scheme_handler_factories);
@ -1710,8 +1719,8 @@ end;
function TCefApplication.Load_cef_ssl_info_capi_h : boolean; function TCefApplication.Load_cef_ssl_info_capi_h : boolean;
begin begin
cef_is_cert_status_error := GetProcAddress(FLibHandle, 'cef_is_cert_status_error'); {$IFDEF FPC}Pointer({$ENDIF}cef_is_cert_status_error{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_is_cert_status_error');
cef_is_cert_status_minor_error := GetProcAddress(FLibHandle, 'cef_is_cert_status_minor_error'); {$IFDEF FPC}Pointer({$ENDIF}cef_is_cert_status_minor_error{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_is_cert_status_minor_error');
Result := assigned(cef_is_cert_status_error) and Result := assigned(cef_is_cert_status_error) and
assigned(cef_is_cert_status_minor_error); assigned(cef_is_cert_status_minor_error);
@ -1719,11 +1728,11 @@ end;
function TCefApplication.Load_cef_stream_capi_h : boolean; function TCefApplication.Load_cef_stream_capi_h : boolean;
begin begin
cef_stream_reader_create_for_file := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_file'); {$IFDEF FPC}Pointer({$ENDIF}cef_stream_reader_create_for_file{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_file');
cef_stream_reader_create_for_data := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_data'); {$IFDEF FPC}Pointer({$ENDIF}cef_stream_reader_create_for_data{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_data');
cef_stream_reader_create_for_handler := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_handler'); {$IFDEF FPC}Pointer({$ENDIF}cef_stream_reader_create_for_handler{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_stream_reader_create_for_handler');
cef_stream_writer_create_for_file := GetProcAddress(FLibHandle, 'cef_stream_writer_create_for_file'); {$IFDEF FPC}Pointer({$ENDIF}cef_stream_writer_create_for_file{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_stream_writer_create_for_file');
cef_stream_writer_create_for_handler := GetProcAddress(FLibHandle, 'cef_stream_writer_create_for_handler'); {$IFDEF FPC}Pointer({$ENDIF}cef_stream_writer_create_for_handler{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_stream_writer_create_for_handler');
Result := assigned(cef_stream_reader_create_for_file) and Result := assigned(cef_stream_reader_create_for_file) and
assigned(cef_stream_reader_create_for_data) and assigned(cef_stream_reader_create_for_data) and
@ -1734,11 +1743,11 @@ end;
function TCefApplication.Load_cef_task_capi_h : boolean; function TCefApplication.Load_cef_task_capi_h : boolean;
begin begin
cef_task_runner_get_for_current_thread := GetProcAddress(FLibHandle, 'cef_task_runner_get_for_current_thread'); {$IFDEF FPC}Pointer({$ENDIF}cef_task_runner_get_for_current_thread{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_task_runner_get_for_current_thread');
cef_task_runner_get_for_thread := GetProcAddress(FLibHandle, 'cef_task_runner_get_for_thread'); {$IFDEF FPC}Pointer({$ENDIF}cef_task_runner_get_for_thread{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_task_runner_get_for_thread');
cef_currently_on := GetProcAddress(FLibHandle, 'cef_currently_on'); {$IFDEF FPC}Pointer({$ENDIF}cef_currently_on{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_currently_on');
cef_post_task := GetProcAddress(FLibHandle, 'cef_post_task'); {$IFDEF FPC}Pointer({$ENDIF}cef_post_task{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_post_task');
cef_post_delayed_task := GetProcAddress(FLibHandle, 'cef_post_delayed_task'); {$IFDEF FPC}Pointer({$ENDIF}cef_post_delayed_task{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_post_delayed_task');
Result := assigned(cef_task_runner_get_for_current_thread) and Result := assigned(cef_task_runner_get_for_current_thread) and
assigned(cef_task_runner_get_for_thread) and assigned(cef_task_runner_get_for_thread) and
@ -1749,16 +1758,16 @@ end;
function TCefApplication.Load_cef_thread_capi_h : boolean; function TCefApplication.Load_cef_thread_capi_h : boolean;
begin begin
cef_thread_create := GetProcAddress(FLibHandle, 'cef_thread_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_thread_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_thread_create');
Result := assigned(cef_thread_create); Result := assigned(cef_thread_create);
end; end;
function TCefApplication.Load_cef_trace_capi_h : boolean; function TCefApplication.Load_cef_trace_capi_h : boolean;
begin begin
cef_begin_tracing := GetProcAddress(FLibHandle, 'cef_begin_tracing'); {$IFDEF FPC}Pointer({$ENDIF}cef_begin_tracing{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_begin_tracing');
cef_end_tracing := GetProcAddress(FLibHandle, 'cef_end_tracing'); {$IFDEF FPC}Pointer({$ENDIF}cef_end_tracing{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_end_tracing');
cef_now_from_system_trace_time := GetProcAddress(FLibHandle, 'cef_now_from_system_trace_time'); {$IFDEF FPC}Pointer({$ENDIF}cef_now_from_system_trace_time{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_now_from_system_trace_time');
Result := assigned(cef_begin_tracing) and Result := assigned(cef_begin_tracing) and
assigned(cef_end_tracing) and assigned(cef_end_tracing) and
@ -1767,30 +1776,30 @@ end;
function TCefApplication.Load_cef_urlrequest_capi_h : boolean; function TCefApplication.Load_cef_urlrequest_capi_h : boolean;
begin begin
cef_urlrequest_create := GetProcAddress(FLibHandle, 'cef_urlrequest_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_urlrequest_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_urlrequest_create');
Result := assigned(cef_urlrequest_create); Result := assigned(cef_urlrequest_create);
end; end;
function TCefApplication.Load_cef_v8_capi_h : boolean; function TCefApplication.Load_cef_v8_capi_h : boolean;
begin begin
cef_v8context_get_current_context := GetProcAddress(FLibHandle, 'cef_v8context_get_current_context'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8context_get_current_context{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8context_get_current_context');
cef_v8context_get_entered_context := GetProcAddress(FLibHandle, 'cef_v8context_get_entered_context'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8context_get_entered_context{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8context_get_entered_context');
cef_v8context_in_context := GetProcAddress(FLibHandle, 'cef_v8context_in_context'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8context_in_context{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8context_in_context');
cef_v8value_create_undefined := GetProcAddress(FLibHandle, 'cef_v8value_create_undefined'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_undefined{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_undefined');
cef_v8value_create_null := GetProcAddress(FLibHandle, 'cef_v8value_create_null'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_null{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_null');
cef_v8value_create_bool := GetProcAddress(FLibHandle, 'cef_v8value_create_bool'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_bool{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_bool');
cef_v8value_create_int := GetProcAddress(FLibHandle, 'cef_v8value_create_int'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_int{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_int');
cef_v8value_create_uint := GetProcAddress(FLibHandle, 'cef_v8value_create_uint'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_uint{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_uint');
cef_v8value_create_double := GetProcAddress(FLibHandle, 'cef_v8value_create_double'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_double{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_double');
cef_v8value_create_date := GetProcAddress(FLibHandle, 'cef_v8value_create_date'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_date{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_date');
cef_v8value_create_string := GetProcAddress(FLibHandle, 'cef_v8value_create_string'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_string{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_string');
cef_v8value_create_object := GetProcAddress(FLibHandle, 'cef_v8value_create_object'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_object{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_object');
cef_v8value_create_array := GetProcAddress(FLibHandle, 'cef_v8value_create_array'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_array{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_array');
cef_v8value_create_array_buffer := GetProcAddress(FLibHandle, 'cef_v8value_create_array_buffer'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_array_buffer{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_array_buffer');
cef_v8value_create_function := GetProcAddress(FLibHandle, 'cef_v8value_create_function'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8value_create_function{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8value_create_function');
cef_v8stack_trace_get_current := GetProcAddress(FLibHandle, 'cef_v8stack_trace_get_current'); {$IFDEF FPC}Pointer({$ENDIF}cef_v8stack_trace_get_current{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_v8stack_trace_get_current');
cef_register_extension := GetProcAddress(FLibHandle, 'cef_register_extension'); {$IFDEF FPC}Pointer({$ENDIF}cef_register_extension{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_extension');
Result := assigned(cef_v8context_get_current_context) and Result := assigned(cef_v8context_get_current_context) and
assigned(cef_v8context_get_entered_context) and assigned(cef_v8context_get_entered_context) and
@ -1813,10 +1822,10 @@ end;
function TCefApplication.Load_cef_values_capi_h : boolean; function TCefApplication.Load_cef_values_capi_h : boolean;
begin begin
cef_value_create := GetProcAddress(FLibHandle, 'cef_value_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_value_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_value_create');
cef_binary_value_create := GetProcAddress(FLibHandle, 'cef_binary_value_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_binary_value_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_binary_value_create');
cef_dictionary_value_create := GetProcAddress(FLibHandle, 'cef_dictionary_value_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_dictionary_value_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_dictionary_value_create');
cef_list_value_create := GetProcAddress(FLibHandle, 'cef_list_value_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_list_value_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_list_value_create');
Result := assigned(cef_value_create) and Result := assigned(cef_value_create) and
assigned(cef_binary_value_create) and assigned(cef_binary_value_create) and
@ -1826,19 +1835,19 @@ end;
function TCefApplication.Load_cef_waitable_event_capi_h : boolean; function TCefApplication.Load_cef_waitable_event_capi_h : boolean;
begin begin
cef_waitable_event_create := GetProcAddress(FLibHandle, 'cef_waitable_event_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_waitable_event_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_waitable_event_create');
Result := assigned(cef_waitable_event_create); Result := assigned(cef_waitable_event_create);
end; end;
function TCefApplication.Load_cef_web_plugin_capi_h : boolean; function TCefApplication.Load_cef_web_plugin_capi_h : boolean;
begin begin
cef_visit_web_plugin_info := GetProcAddress(FLibHandle, 'cef_visit_web_plugin_info'); {$IFDEF FPC}Pointer({$ENDIF}cef_visit_web_plugin_info{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_visit_web_plugin_info');
cef_refresh_web_plugins := GetProcAddress(FLibHandle, 'cef_refresh_web_plugins'); {$IFDEF FPC}Pointer({$ENDIF}cef_refresh_web_plugins{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_refresh_web_plugins');
cef_unregister_internal_web_plugin := GetProcAddress(FLibHandle, 'cef_unregister_internal_web_plugin'); {$IFDEF FPC}Pointer({$ENDIF}cef_unregister_internal_web_plugin{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_unregister_internal_web_plugin');
cef_register_web_plugin_crash := GetProcAddress(FLibHandle, 'cef_register_web_plugin_crash'); {$IFDEF FPC}Pointer({$ENDIF}cef_register_web_plugin_crash{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_web_plugin_crash');
cef_is_web_plugin_unstable := GetProcAddress(FLibHandle, 'cef_is_web_plugin_unstable'); {$IFDEF FPC}Pointer({$ENDIF}cef_is_web_plugin_unstable{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_is_web_plugin_unstable');
cef_register_widevine_cdm := GetProcAddress(FLibHandle, 'cef_register_widevine_cdm'); {$IFDEF FPC}Pointer({$ENDIF}cef_register_widevine_cdm{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_register_widevine_cdm');
Result := assigned(cef_visit_web_plugin_info) and Result := assigned(cef_visit_web_plugin_info) and
assigned(cef_refresh_web_plugins) and assigned(cef_refresh_web_plugins) and
@ -1850,23 +1859,23 @@ end;
function TCefApplication.Load_cef_xml_reader_capi_h : boolean; function TCefApplication.Load_cef_xml_reader_capi_h : boolean;
begin begin
cef_xml_reader_create := GetProcAddress(FLibHandle, 'cef_xml_reader_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_xml_reader_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_xml_reader_create');
Result := assigned(cef_xml_reader_create); Result := assigned(cef_xml_reader_create);
end; end;
function TCefApplication.Load_cef_zip_reader_capi_h : boolean; function TCefApplication.Load_cef_zip_reader_capi_h : boolean;
begin begin
cef_zip_reader_create := GetProcAddress(FLibHandle, 'cef_zip_reader_create'); {$IFDEF FPC}Pointer({$ENDIF}cef_zip_reader_create{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_zip_reader_create');
Result := assigned(cef_zip_reader_create); Result := assigned(cef_zip_reader_create);
end; end;
function TCefApplication.Load_cef_logging_internal_h : boolean; function TCefApplication.Load_cef_logging_internal_h : boolean;
begin begin
cef_get_min_log_level := GetProcAddress(FLibHandle, 'cef_get_min_log_level'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_min_log_level{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_min_log_level');
cef_get_vlog_level := GetProcAddress(FLibHandle, 'cef_get_vlog_level'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_vlog_level{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_vlog_level');
cef_log := GetProcAddress(FLibHandle, 'cef_log'); {$IFDEF FPC}Pointer({$ENDIF}cef_log{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_log');
Result := assigned(cef_get_min_log_level) and Result := assigned(cef_get_min_log_level) and
assigned(cef_get_vlog_level) and assigned(cef_get_vlog_level) and
@ -1875,13 +1884,13 @@ end;
function TCefApplication.Load_cef_string_list_h : boolean; function TCefApplication.Load_cef_string_list_h : boolean;
begin begin
cef_string_list_alloc := GetProcAddress(FLibHandle, 'cef_string_list_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_alloc');
cef_string_list_size := GetProcAddress(FLibHandle, 'cef_string_list_size'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_size{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_size');
cef_string_list_value := GetProcAddress(FLibHandle, 'cef_string_list_value'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_value{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_value');
cef_string_list_append := GetProcAddress(FLibHandle, 'cef_string_list_append'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_append{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_append');
cef_string_list_clear := GetProcAddress(FLibHandle, 'cef_string_list_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_clear');
cef_string_list_free := GetProcAddress(FLibHandle, 'cef_string_list_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_free');
cef_string_list_copy := GetProcAddress(FLibHandle, 'cef_string_list_copy'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_list_copy{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_list_copy');
Result := assigned(cef_string_list_alloc) and Result := assigned(cef_string_list_alloc) and
assigned(cef_string_list_size) and assigned(cef_string_list_size) and
@ -1894,14 +1903,14 @@ end;
function TCefApplication.Load_cef_string_map_h : boolean; function TCefApplication.Load_cef_string_map_h : boolean;
begin begin
cef_string_map_alloc := GetProcAddress(FLibHandle, 'cef_string_map_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_alloc');
cef_string_map_size := GetProcAddress(FLibHandle, 'cef_string_map_size'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_size{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_size');
cef_string_map_find := GetProcAddress(FLibHandle, 'cef_string_map_find'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_find{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_find');
cef_string_map_key := GetProcAddress(FLibHandle, 'cef_string_map_key'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_key{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_key');
cef_string_map_value := GetProcAddress(FLibHandle, 'cef_string_map_value'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_value{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_value');
cef_string_map_append := GetProcAddress(FLibHandle, 'cef_string_map_append'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_append{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_append');
cef_string_map_clear := GetProcAddress(FLibHandle, 'cef_string_map_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_clear');
cef_string_map_free := GetProcAddress(FLibHandle, 'cef_string_map_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_map_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_map_free');
Result := assigned(cef_string_map_alloc) and Result := assigned(cef_string_map_alloc) and
assigned(cef_string_map_size) and assigned(cef_string_map_size) and
@ -1915,15 +1924,15 @@ end;
function TCefApplication.Load_cef_string_multimap_h : boolean; function TCefApplication.Load_cef_string_multimap_h : boolean;
begin begin
cef_string_multimap_alloc := GetProcAddress(FLibHandle, 'cef_string_multimap_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_alloc');
cef_string_multimap_size := GetProcAddress(FLibHandle, 'cef_string_multimap_size'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_size{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_size');
cef_string_multimap_find_count := GetProcAddress(FLibHandle, 'cef_string_multimap_find_count'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_find_count{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_find_count');
cef_string_multimap_enumerate := GetProcAddress(FLibHandle, 'cef_string_multimap_enumerate'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_enumerate{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_enumerate');
cef_string_multimap_key := GetProcAddress(FLibHandle, 'cef_string_multimap_key'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_key{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_key');
cef_string_multimap_value := GetProcAddress(FLibHandle, 'cef_string_multimap_value'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_value{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_value');
cef_string_multimap_append := GetProcAddress(FLibHandle, 'cef_string_multimap_append'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_append{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_append');
cef_string_multimap_clear := GetProcAddress(FLibHandle, 'cef_string_multimap_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_clear');
cef_string_multimap_free := GetProcAddress(FLibHandle, 'cef_string_multimap_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_multimap_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_multimap_free');
Result := assigned(cef_string_multimap_alloc) and Result := assigned(cef_string_multimap_alloc) and
assigned(cef_string_multimap_size) and assigned(cef_string_multimap_size) and
@ -1938,31 +1947,31 @@ end;
function TCefApplication.Load_cef_string_types_h : boolean; function TCefApplication.Load_cef_string_types_h : boolean;
begin begin
cef_string_wide_set := GetProcAddress(FLibHandle, 'cef_string_wide_set'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_wide_set{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_wide_set');
cef_string_utf8_set := GetProcAddress(FLibHandle, 'cef_string_utf8_set'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf8_set{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf8_set');
cef_string_utf16_set := GetProcAddress(FLibHandle, 'cef_string_utf16_set'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_set{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_set');
cef_string_wide_clear := GetProcAddress(FLibHandle, 'cef_string_wide_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_wide_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_wide_clear');
cef_string_utf8_clear := GetProcAddress(FLibHandle, 'cef_string_utf8_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf8_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf8_clear');
cef_string_utf16_clear := GetProcAddress(FLibHandle, 'cef_string_utf16_clear'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_clear{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_clear');
cef_string_wide_cmp := GetProcAddress(FLibHandle, 'cef_string_wide_cmp'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_wide_cmp{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_wide_cmp');
cef_string_utf8_cmp := GetProcAddress(FLibHandle, 'cef_string_utf8_cmp'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf8_cmp{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf8_cmp');
cef_string_utf16_cmp := GetProcAddress(FLibHandle, 'cef_string_utf16_cmp'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_cmp{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_cmp');
cef_string_wide_to_utf8 := GetProcAddress(FLibHandle, 'cef_string_wide_to_utf8'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_wide_to_utf8{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_wide_to_utf8');
cef_string_utf8_to_wide := GetProcAddress(FLibHandle, 'cef_string_utf8_to_wide'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf8_to_wide{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf8_to_wide');
cef_string_wide_to_utf16 := GetProcAddress(FLibHandle, 'cef_string_wide_to_utf16'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_wide_to_utf16{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_wide_to_utf16');
cef_string_utf16_to_wide := GetProcAddress(FLibHandle, 'cef_string_utf16_to_wide'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_to_wide{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_to_wide');
cef_string_utf8_to_utf16 := GetProcAddress(FLibHandle, 'cef_string_utf8_to_utf16'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf8_to_utf16{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf8_to_utf16');
cef_string_utf16_to_utf8 := GetProcAddress(FLibHandle, 'cef_string_utf16_to_utf8'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_to_utf8{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_to_utf8');
cef_string_ascii_to_wide := GetProcAddress(FLibHandle, 'cef_string_ascii_to_wide'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_ascii_to_wide{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_ascii_to_wide');
cef_string_ascii_to_utf16 := GetProcAddress(FLibHandle, 'cef_string_ascii_to_utf16'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_ascii_to_utf16{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_ascii_to_utf16');
cef_string_userfree_wide_alloc := GetProcAddress(FLibHandle, 'cef_string_userfree_wide_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_wide_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_wide_alloc');
cef_string_userfree_utf8_alloc := GetProcAddress(FLibHandle, 'cef_string_userfree_utf8_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_utf8_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_utf8_alloc');
cef_string_userfree_utf16_alloc := GetProcAddress(FLibHandle, 'cef_string_userfree_utf16_alloc'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_utf16_alloc{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_utf16_alloc');
cef_string_userfree_wide_free := GetProcAddress(FLibHandle, 'cef_string_userfree_wide_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_wide_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_wide_free');
cef_string_userfree_utf8_free := GetProcAddress(FLibHandle, 'cef_string_userfree_utf8_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_utf8_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_utf8_free');
cef_string_userfree_utf16_free := GetProcAddress(FLibHandle, 'cef_string_userfree_utf16_free'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_userfree_utf16_free{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_userfree_utf16_free');
cef_string_utf16_to_lower := GetProcAddress(FLibHandle, 'cef_string_utf16_to_lower'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_to_lower{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_to_lower');
cef_string_utf16_to_upper := GetProcAddress(FLibHandle, 'cef_string_utf16_to_upper'); {$IFDEF FPC}Pointer({$ENDIF}cef_string_utf16_to_upper{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_string_utf16_to_upper');
Result := assigned(cef_string_wide_set) and Result := assigned(cef_string_wide_set) and
assigned(cef_string_utf8_set) and assigned(cef_string_utf8_set) and
@ -1993,8 +2002,8 @@ end;
function TCefApplication.Load_cef_thread_internal_h : boolean; function TCefApplication.Load_cef_thread_internal_h : boolean;
begin begin
cef_get_current_platform_thread_id := GetProcAddress(FLibHandle, 'cef_get_current_platform_thread_id'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_current_platform_thread_id{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_current_platform_thread_id');
cef_get_current_platform_thread_handle := GetProcAddress(FLibHandle, 'cef_get_current_platform_thread_handle'); {$IFDEF FPC}Pointer({$ENDIF}cef_get_current_platform_thread_handle{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_get_current_platform_thread_handle');
Result := assigned(cef_get_current_platform_thread_id) and Result := assigned(cef_get_current_platform_thread_id) and
assigned(cef_get_current_platform_thread_handle); assigned(cef_get_current_platform_thread_handle);
@ -2002,15 +2011,15 @@ end;
function TCefApplication.Load_cef_trace_event_internal_h : boolean; function TCefApplication.Load_cef_trace_event_internal_h : boolean;
begin begin
cef_trace_event_instant := GetProcAddress(FLibHandle, 'cef_trace_event_instant'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_instant{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_instant');
cef_trace_event_begin := GetProcAddress(FLibHandle, 'cef_trace_event_begin'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_begin{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_begin');
cef_trace_event_end := GetProcAddress(FLibHandle, 'cef_trace_event_end'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_end{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_end');
cef_trace_counter := GetProcAddress(FLibHandle, 'cef_trace_counter'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_counter{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_counter');
cef_trace_counter_id := GetProcAddress(FLibHandle, 'cef_trace_counter_id'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_counter_id{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_counter_id');
cef_trace_event_async_begin := GetProcAddress(FLibHandle, 'cef_trace_event_async_begin'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_async_begin{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_async_begin');
cef_trace_event_async_step_into := GetProcAddress(FLibHandle, 'cef_trace_event_async_step_into'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_async_step_into{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_async_step_into');
cef_trace_event_async_step_past := GetProcAddress(FLibHandle, 'cef_trace_event_async_step_past'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_async_step_past{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_async_step_past');
cef_trace_event_async_end := GetProcAddress(FLibHandle, 'cef_trace_event_async_end'); {$IFDEF FPC}Pointer({$ENDIF}cef_trace_event_async_end{$IFDEF FPC}){$ENDIF} := GetProcAddress(FLibHandle, 'cef_trace_event_async_end');
Result := assigned(cef_trace_event_instant) and Result := assigned(cef_trace_event_instant) and
assigned(cef_trace_event_begin) and assigned(cef_trace_event_begin) and

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFAuthCallback; unit uCEFAuthCallback;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -66,22 +70,23 @@ uses
procedure TCefAuthCallbackRef.Cancel; procedure TCefAuthCallbackRef.Cancel;
begin begin
PCefAuthCallback(FData).cancel(PCefAuthCallback(FData)); PCefAuthCallback(FData)^.cancel(PCefAuthCallback(FData));
end; end;
procedure TCefAuthCallbackRef.Cont(const username, password: ustring); procedure TCefAuthCallbackRef.Cont(const username, password: ustring);
var var
u, p: TCefString; TempUsername, TempPassword : TCefString;
begin begin
u := CefString(username); TempUsername := CefString(username);
p := CefString(password); TempPassword := CefString(password);
PCefAuthCallback(FData).cont(PCefAuthCallback(FData), @u, @p); PCefAuthCallback(FData)^.cont(PCefAuthCallback(FData), @TempUsername, @TempPassword);
end; end;
class function TCefAuthCallbackRef.UnWrap(data: Pointer): ICefAuthCallback; class function TCefAuthCallbackRef.UnWrap(data: Pointer): ICefAuthCallback;
begin begin
if data <> nil then if (data <> nil) then
Result := Create(data) as ICefAuthCallback else Result := Create(data) as ICefAuthCallback
else
Result := nil; Result := nil;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFBaseRefCounted; unit uCEFBaseRefCounted;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -159,15 +163,15 @@ begin
if owned then if owned then
begin begin
PCefBaseRefCounted(FData)^.add_ref := cef_base_add_ref_owned; PCefBaseRefCounted(FData)^.add_ref := {$IFDEF FPC}@{$ENDIF}cef_base_add_ref_owned;
PCefBaseRefCounted(FData)^.release := cef_base_release_owned; PCefBaseRefCounted(FData)^.release := {$IFDEF FPC}@{$ENDIF}cef_base_release_owned;
PCefBaseRefCounted(FData)^.has_one_ref := cef_base_has_one_ref_owned; PCefBaseRefCounted(FData)^.has_one_ref := {$IFDEF FPC}@{$ENDIF}cef_base_has_one_ref_owned;
end end
else else
begin begin
PCefBaseRefCounted(FData)^.add_ref := cef_base_add_ref; PCefBaseRefCounted(FData)^.add_ref := {$IFDEF FPC}@{$ENDIF}cef_base_add_ref;
PCefBaseRefCounted(FData)^.release := cef_base_release_ref; PCefBaseRefCounted(FData)^.release := {$IFDEF FPC}@{$ENDIF}cef_base_release_ref;
PCefBaseRefCounted(FData)^.has_one_ref := cef_base_has_one_ref; PCefBaseRefCounted(FData)^.has_one_ref := {$IFDEF FPC}@{$ENDIF}cef_base_has_one_ref;
end; end;
end; end;
@ -264,13 +268,13 @@ end;
// ************************************************ // ************************************************
function TLoggingInterfacedObject._AddRef: Integer; function TLoggingInterfacedObject._AddRef: Integer; stdcall;
begin begin
Result := inherited _AddRef; Result := inherited _AddRef;
CefDebugLog(ClassName + '._AddRef -> FRefCount = ' + IntToStr(Result)); CefDebugLog(ClassName + '._AddRef -> FRefCount = ' + IntToStr(Result));
end; end;
function TLoggingInterfacedObject._Release: Integer; function TLoggingInterfacedObject._Release: Integer; stdcall;
begin begin
CefDebugLog(ClassName + '._Release -> FRefCount = ' + IntToStr(pred(RefCount))); CefDebugLog(ClassName + '._Release -> FRefCount = ' + IntToStr(pred(RefCount)));
Result := inherited _Release; Result := inherited _Release;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFBaseScopedWrapper; unit uCEFBaseScopedWrapper;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFBeforeDownloadCallback; unit uCEFBeforeDownloadCallback;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -63,20 +67,19 @@ implementation
uses uses
uCEFMiscFunctions, uCEFLibFunctions; uCEFMiscFunctions, uCEFLibFunctions;
procedure TCefBeforeDownloadCallbackRef.Cont(const downloadPath: ustring; procedure TCefBeforeDownloadCallbackRef.Cont(const downloadPath: ustring; showDialog: Boolean);
showDialog: Boolean);
var var
dp: TCefString; TempPath : TCefString;
begin begin
dp := CefString(downloadPath); TempPath := CefString(downloadPath);
PCefBeforeDownloadCallback(FData).cont(PCefBeforeDownloadCallback(FData), @dp, Ord(showDialog)); PCefBeforeDownloadCallback(FData)^.cont(PCefBeforeDownloadCallback(FData), @TempPath, Ord(showDialog));
end; end;
class function TCefBeforeDownloadCallbackRef.UnWrap( class function TCefBeforeDownloadCallbackRef.UnWrap(data: Pointer): ICefBeforeDownloadCallback;
data: Pointer): ICefBeforeDownloadCallback;
begin begin
if data <> nil then if (data <> nil) then
Result := Create(data) as ICefBeforeDownloadCallback else Result := Create(data) as ICefBeforeDownloadCallback
else
Result := nil; Result := nil;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -36,6 +36,10 @@
*) *)
unit uCEFBinaryValue; unit uCEFBinaryValue;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
@ -92,38 +96,37 @@ uses
function TCefBinaryValueRef.Copy: ICefBinaryValue; function TCefBinaryValueRef.Copy: ICefBinaryValue;
begin begin
Result := UnWrap(PCefBinaryValue(FData).copy(PCefBinaryValue(FData))); Result := UnWrap(PCefBinaryValue(FData)^.copy(PCefBinaryValue(FData)));
end; end;
function TCefBinaryValueRef.GetData(buffer: Pointer; bufferSize, function TCefBinaryValueRef.GetData(buffer: Pointer; bufferSize, dataOffset: NativeUInt): NativeUInt;
dataOffset: NativeUInt): NativeUInt;
begin begin
Result := PCefBinaryValue(FData).get_data(PCefBinaryValue(FData), buffer, bufferSize, dataOffset); Result := PCefBinaryValue(FData)^.get_data(PCefBinaryValue(FData), buffer, bufferSize, dataOffset);
end; end;
function TCefBinaryValueRef.GetSize: NativeUInt; function TCefBinaryValueRef.GetSize: NativeUInt;
begin begin
Result := PCefBinaryValue(FData).get_size(PCefBinaryValue(FData)); Result := PCefBinaryValue(FData)^.get_size(PCefBinaryValue(FData));
end; end;
function TCefBinaryValueRef.IsEqual(const that: ICefBinaryValue): Boolean; function TCefBinaryValueRef.IsEqual(const that: ICefBinaryValue): Boolean;
begin begin
Result := PCefBinaryValue(FData).is_equal(PCefBinaryValue(FData), CefGetData(that)) <> 0; Result := PCefBinaryValue(FData)^.is_equal(PCefBinaryValue(FData), CefGetData(that)) <> 0;
end; end;
function TCefBinaryValueRef.IsOwned: Boolean; function TCefBinaryValueRef.IsOwned: Boolean;
begin begin
Result := PCefBinaryValue(FData).is_owned(PCefBinaryValue(FData)) <> 0; Result := PCefBinaryValue(FData)^.is_owned(PCefBinaryValue(FData)) <> 0;
end; end;
function TCefBinaryValueRef.IsSame(const that: ICefBinaryValue): Boolean; function TCefBinaryValueRef.IsSame(const that: ICefBinaryValue): Boolean;
begin begin
Result := PCefBinaryValue(FData).is_same(PCefBinaryValue(FData), CefGetData(that)) <> 0; Result := PCefBinaryValue(FData)^.is_same(PCefBinaryValue(FData), CefGetData(that)) <> 0;
end; end;
function TCefBinaryValueRef.IsValid: Boolean; function TCefBinaryValueRef.IsValid: Boolean;
begin begin
Result := PCefBinaryValue(FData).is_valid(PCefBinaryValue(FData)) <> 0; Result := PCefBinaryValue(FData)^.is_valid(PCefBinaryValue(FData)) <> 0;
end; end;
class function TCefBinaryValueRef.New(const data: Pointer; dataSize: NativeUInt): ICefBinaryValue; class function TCefBinaryValueRef.New(const data: Pointer; dataSize: NativeUInt): ICefBinaryValue;
@ -133,8 +136,9 @@ end;
class function TCefBinaryValueRef.UnWrap(data: Pointer): ICefBinaryValue; class function TCefBinaryValueRef.UnWrap(data: Pointer): ICefBinaryValue;
begin begin
if data <> nil then if (data <> nil) then
Result := Create(data) as ICefBinaryValue else Result := Create(data) as ICefBinaryValue
else
Result := nil; Result := nil;
end; end;
@ -226,13 +230,13 @@ begin
with PCefBinaryValue(FData)^ do with PCefBinaryValue(FData)^ do
begin begin
is_valid := cef_binary_value_is_valid; is_valid := {$IFDEF FPC}@{$ENDIF}cef_binary_value_is_valid;
is_owned := cef_binary_value_is_owned; is_owned := {$IFDEF FPC}@{$ENDIF}cef_binary_value_is_owned;
is_same := cef_binary_value_is_same; is_same := {$IFDEF FPC}@{$ENDIF}cef_binary_value_is_same;
is_equal := cef_binary_value_is_equal; is_equal := {$IFDEF FPC}@{$ENDIF}cef_binary_value_is_equal;
copy := cef_binary_value_copy; copy := {$IFDEF FPC}@{$ENDIF}cef_binary_value_copy;
get_size := cef_binary_value_get_size; get_size := {$IFDEF FPC}@{$ENDIF}cef_binary_value_get_size;
get_data := cef_binary_value_get_data; get_data := {$IFDEF FPC}@{$ENDIF}cef_binary_value_get_data;
end; end;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFBrowser; unit uCEFBrowser;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -123,7 +127,7 @@ type
procedure SendMouseClickEvent(const event: PCefMouseEvent; kind: TCefMouseButtonType; mouseUp: Boolean; clickCount: Integer); procedure SendMouseClickEvent(const event: PCefMouseEvent; kind: TCefMouseButtonType; mouseUp: Boolean; clickCount: Integer);
procedure SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean); procedure SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean);
procedure SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer); procedure SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer);
procedure SendFocusEvent(setFocus: Boolean); procedure SendFocusEvent(aSetFocus: Boolean);
procedure SendCaptureLostEvent; procedure SendCaptureLostEvent;
procedure NotifyMoveOrResizeStarted; procedure NotifyMoveOrResizeStarted;
function GetWindowlessFrameRate : Integer; function GetWindowlessFrameRate : Integer;
@ -182,10 +186,10 @@ end;
function TCefBrowserRef.GetFrame(const name: ustring): ICefFrame; function TCefBrowserRef.GetFrame(const name: ustring): ICefFrame;
var var
n: TCefString; TempName : TCefString;
begin begin
n := CefString(name); TempName := CefString(name);
Result := TCefFrameRef.UnWrap(PCefBrowser(FData)^.get_frame(PCefBrowser(FData), @n)); Result := TCefFrameRef.UnWrap(PCefBrowser(FData)^.get_frame(PCefBrowser(FData), @TempName));
end; end;
function TCefBrowserRef.GetFrameCount: NativeUInt; function TCefBrowserRef.GetFrameCount: NativeUInt;
@ -307,7 +311,7 @@ end;
procedure TCefBrowserHostRef.CloseDevTools; procedure TCefBrowserHostRef.CloseDevTools;
begin begin
PCefBrowserHost(FData).close_dev_tools(FData); PCefBrowserHost(FData)^.close_dev_tools(FData);
end; end;
procedure TCefBrowserHostRef.DownloadImage(const imageUrl : ustring; procedure TCefBrowserHostRef.DownloadImage(const imageUrl : ustring;
@ -319,7 +323,7 @@ var
url: TCefString; url: TCefString;
begin begin
url := CefString(imageUrl); url := CefString(imageUrl);
PCefBrowserHost(FData).download_image(FData, @url, Ord(isFavicon), maxImageSize, Ord(bypassCache), CefGetData(callback)); PCefBrowserHost(FData)^.download_image(FData, @url, Ord(isFavicon), maxImageSize, Ord(bypassCache), CefGetData(callback));
end; end;
procedure TCefBrowserHostRef.DownloadImageProc(const imageUrl : ustring; procedure TCefBrowserHostRef.DownloadImageProc(const imageUrl : ustring;
@ -333,77 +337,75 @@ end;
procedure TCefBrowserHostRef.DragSourceEndedAt(x, y: Integer; op: TCefDragOperation); procedure TCefBrowserHostRef.DragSourceEndedAt(x, y: Integer; op: TCefDragOperation);
begin begin
PCefBrowserHost(FData).drag_source_ended_at(FData, x, y, op); PCefBrowserHost(FData)^.drag_source_ended_at(FData, x, y, op);
end; end;
procedure TCefBrowserHostRef.DragSourceSystemDragEnded; procedure TCefBrowserHostRef.DragSourceSystemDragEnded;
begin begin
PCefBrowserHost(FData).drag_source_system_drag_ended(FData); PCefBrowserHost(FData)^.drag_source_system_drag_ended(FData);
end; end;
function TCefBrowserHostRef.GetVisibleNavigationEntry : ICefNavigationEntry; function TCefBrowserHostRef.GetVisibleNavigationEntry : ICefNavigationEntry;
begin begin
Result := TCefNavigationEntryRef.UnWrap(PCefBrowserHost(FData).get_visible_navigation_entry(PCefBrowserHost(FData))); Result := TCefNavigationEntryRef.UnWrap(PCefBrowserHost(FData)^.get_visible_navigation_entry(PCefBrowserHost(FData)));
end; end;
procedure TCefBrowserHostRef.SetAccessibilityState(accessibilityState: TCefState); procedure TCefBrowserHostRef.SetAccessibilityState(accessibilityState: TCefState);
begin begin
PCefBrowserHost(FData).set_accessibility_state(FData, accessibilityState); PCefBrowserHost(FData)^.set_accessibility_state(FData, accessibilityState);
end; end;
procedure TCefBrowserHostRef.SetAutoResizeEnabled(enabled: boolean; const min_size, max_size: PCefSize); procedure TCefBrowserHostRef.SetAutoResizeEnabled(enabled: boolean; const min_size, max_size: PCefSize);
begin begin
PCefBrowserHost(FData).set_auto_resize_enabled(FData, Ord(enabled), min_size, max_size); PCefBrowserHost(FData)^.set_auto_resize_enabled(FData, Ord(enabled), min_size, max_size);
end; end;
function TCefBrowserHostRef.GetExtension : ICefExtension; function TCefBrowserHostRef.GetExtension : ICefExtension;
begin begin
Result := TCefExtensionRef.UnWrap(PCefBrowserHost(FData).get_extension(FData)); Result := TCefExtensionRef.UnWrap(PCefBrowserHost(FData)^.get_extension(FData));
end; end;
function TCefBrowserHostRef.IsBackgroundHost : boolean; function TCefBrowserHostRef.IsBackgroundHost : boolean;
begin begin
Result := PCefBrowserHost(FData).is_background_host(FData) <> 0; Result := PCefBrowserHost(FData)^.is_background_host(FData) <> 0;
end; end;
procedure TCefBrowserHostRef.DragTargetDragEnter(const dragData: ICefDragData; procedure TCefBrowserHostRef.DragTargetDragEnter(const dragData: ICefDragData; const event: PCefMouseEvent; allowedOps: TCefDragOperations);
const event: PCefMouseEvent; allowedOps: TCefDragOperations);
begin begin
PCefBrowserHost(FData).drag_target_drag_enter(FData, CefGetData(dragData), event, allowedOps); PCefBrowserHost(FData)^.drag_target_drag_enter(FData, CefGetData(dragData), event, allowedOps);
end; end;
procedure TCefBrowserHostRef.DragTargetDragLeave; procedure TCefBrowserHostRef.DragTargetDragLeave;
begin begin
PCefBrowserHost(FData).drag_target_drag_leave(FData); PCefBrowserHost(FData)^.drag_target_drag_leave(FData);
end; end;
procedure TCefBrowserHostRef.DragTargetDragOver(const event: PCefMouseEvent; procedure TCefBrowserHostRef.DragTargetDragOver(const event: PCefMouseEvent; allowedOps: TCefDragOperations);
allowedOps: TCefDragOperations);
begin begin
PCefBrowserHost(FData).drag_target_drag_over(FData, event, allowedOps); PCefBrowserHost(FData)^.drag_target_drag_over(FData, event, allowedOps);
end; end;
procedure TCefBrowserHostRef.DragTargetDrop(event: PCefMouseEvent); procedure TCefBrowserHostRef.DragTargetDrop(event: PCefMouseEvent);
begin begin
PCefBrowserHost(FData).drag_target_drop(FData, event); PCefBrowserHost(FData)^.drag_target_drop(FData, event);
end; end;
procedure TCefBrowserHostRef.Find(identifier: Integer; const searchText: ustring; forward, matchCase, findNext: Boolean); procedure TCefBrowserHostRef.Find(identifier: Integer; const searchText: ustring; forward, matchCase, findNext: Boolean);
var var
s: TCefString; TempText : TCefString;
begin begin
s := CefString(searchText); TempText := CefString(searchText);
PCefBrowserHost(FData).find(FData, identifier, @s, Ord(forward), Ord(matchCase), Ord(findNext)); PCefBrowserHost(FData)^.find(FData, identifier, @TempText, Ord(forward), Ord(matchCase), Ord(findNext));
end; end;
function TCefBrowserHostRef.GetBrowser: ICefBrowser; function TCefBrowserHostRef.GetBrowser: ICefBrowser;
begin begin
Result := TCefBrowserRef.UnWrap(PCefBrowserHost(FData).get_browser(PCefBrowserHost(FData))); Result := TCefBrowserRef.UnWrap(PCefBrowserHost(FData)^.get_browser(PCefBrowserHost(FData)));
end; end;
procedure TCefBrowserHostRef.Print; procedure TCefBrowserHostRef.Print;
begin begin
PCefBrowserHost(FData).print(FData); PCefBrowserHost(FData)^.print(FData);
end; end;
procedure TCefBrowserHostRef.PrintToPdf(const path : ustring; procedure TCefBrowserHostRef.PrintToPdf(const path : ustring;
@ -413,7 +415,7 @@ var
str: TCefString; str: TCefString;
begin begin
str := CefString(path); str := CefString(path);
PCefBrowserHost(FData).print_to_pdf(FData, @str, settings, CefGetData(callback)); PCefBrowserHost(FData)^.print_to_pdf(FData, @str, settings, CefGetData(callback));
end; end;
procedure TCefBrowserHostRef.PrintToPdfProc(const path : ustring; procedure TCefBrowserHostRef.PrintToPdfProc(const path : ustring;
@ -428,7 +430,7 @@ var
str: TCefString; str: TCefString;
begin begin
str := CefString(word); str := CefString(word);
PCefBrowserHost(FData).replace_misspelling(FData, @str); PCefBrowserHost(FData)^.replace_misspelling(FData, @str);
end; end;
procedure TCefBrowserHostRef.RunFileDialog( mode : TCefFileDialogMode; procedure TCefBrowserHostRef.RunFileDialog( mode : TCefFileDialogMode;
@ -448,13 +450,13 @@ begin
TempAcceptFilters := TCefStringListOwn.Create; TempAcceptFilters := TCefStringListOwn.Create;
TempAcceptFilters.AddStrings(acceptFilters); TempAcceptFilters.AddStrings(acceptFilters);
PCefBrowserHost(FData).run_file_dialog(PCefBrowserHost(FData), PCefBrowserHost(FData)^.run_file_dialog(PCefBrowserHost(FData),
mode, mode,
@TempTitle, @TempTitle,
@TempPath, @TempPath,
TempAcceptFilters.Handle, TempAcceptFilters.Handle,
selectedAcceptFilter, selectedAcceptFilter,
CefGetData(callback)); CefGetData(callback));
finally finally
TempAcceptFilters := nil; TempAcceptFilters := nil;
end; end;
@ -475,27 +477,27 @@ var
str: TCefString; str: TCefString;
begin begin
str := CefString(word); str := CefString(word);
PCefBrowserHost(FData).add_word_to_dictionary(FData, @str); PCefBrowserHost(FData)^.add_word_to_dictionary(FData, @str);
end; end;
procedure TCefBrowserHostRef.CloseBrowser(forceClose: Boolean); procedure TCefBrowserHostRef.CloseBrowser(forceClose: Boolean);
begin begin
PCefBrowserHost(FData).close_browser(PCefBrowserHost(FData), Ord(forceClose)); PCefBrowserHost(FData)^.close_browser(PCefBrowserHost(FData), Ord(forceClose));
end; end;
procedure TCefBrowserHostRef.SendCaptureLostEvent; procedure TCefBrowserHostRef.SendCaptureLostEvent;
begin begin
PCefBrowserHost(FData).send_capture_lost_event(FData); PCefBrowserHost(FData)^.send_capture_lost_event(FData);
end; end;
procedure TCefBrowserHostRef.SendFocusEvent(setFocus: Boolean); procedure TCefBrowserHostRef.SendFocusEvent(aSetFocus: Boolean);
begin begin
PCefBrowserHost(FData).send_focus_event(FData, Ord(setFocus)); PCefBrowserHost(FData)^.send_focus_event(FData, Ord(aSetFocus));
end; end;
procedure TCefBrowserHostRef.SendKeyEvent(const event: PCefKeyEvent); procedure TCefBrowserHostRef.SendKeyEvent(const event: PCefKeyEvent);
begin begin
PCefBrowserHost(FData).send_key_event(FData, event); PCefBrowserHost(FData)^.send_key_event(FData, event);
end; end;
procedure TCefBrowserHostRef.SendMouseClickEvent(const event : PCefMouseEvent; procedure TCefBrowserHostRef.SendMouseClickEvent(const event : PCefMouseEvent;
@ -503,57 +505,57 @@ procedure TCefBrowserHostRef.SendMouseClickEvent(const event : PCefMouseEve
mouseUp : Boolean; mouseUp : Boolean;
clickCount : Integer); clickCount : Integer);
begin begin
PCefBrowserHost(FData).send_mouse_click_event(FData, event, kind, Ord(mouseUp), clickCount); PCefBrowserHost(FData)^.send_mouse_click_event(FData, event, kind, Ord(mouseUp), clickCount);
end; end;
procedure TCefBrowserHostRef.SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean); procedure TCefBrowserHostRef.SendMouseMoveEvent(const event: PCefMouseEvent; mouseLeave: Boolean);
begin begin
PCefBrowserHost(FData).send_mouse_move_event(FData, event, Ord(mouseLeave)); PCefBrowserHost(FData)^.send_mouse_move_event(FData, event, Ord(mouseLeave));
end; end;
procedure TCefBrowserHostRef.SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer); procedure TCefBrowserHostRef.SendMouseWheelEvent(const event: PCefMouseEvent; deltaX, deltaY: Integer);
begin begin
PCefBrowserHost(FData).send_mouse_wheel_event(FData, event, deltaX, deltaY); PCefBrowserHost(FData)^.send_mouse_wheel_event(FData, event, deltaX, deltaY);
end; end;
procedure TCefBrowserHostRef.SetFocus(focus: Boolean); procedure TCefBrowserHostRef.SetFocus(focus: Boolean);
begin begin
PCefBrowserHost(FData).set_focus(PCefBrowserHost(FData), Ord(focus)); PCefBrowserHost(FData)^.set_focus(PCefBrowserHost(FData), Ord(focus));
end; end;
procedure TCefBrowserHostRef.SetMouseCursorChangeDisabled(disabled: Boolean); procedure TCefBrowserHostRef.SetMouseCursorChangeDisabled(disabled: Boolean);
begin begin
PCefBrowserHost(FData).set_mouse_cursor_change_disabled(PCefBrowserHost(FData), Ord(disabled)); PCefBrowserHost(FData)^.set_mouse_cursor_change_disabled(PCefBrowserHost(FData), Ord(disabled));
end; end;
procedure TCefBrowserHostRef.SetWindowlessFrameRate(frameRate: Integer); procedure TCefBrowserHostRef.SetWindowlessFrameRate(frameRate: Integer);
begin begin
PCefBrowserHost(FData).set_windowless_frame_rate(PCefBrowserHost(FData), frameRate); PCefBrowserHost(FData)^.set_windowless_frame_rate(PCefBrowserHost(FData), frameRate);
end; end;
function TCefBrowserHostRef.GetWindowHandle: TCefWindowHandle; function TCefBrowserHostRef.GetWindowHandle: TCefWindowHandle;
begin begin
Result := PCefBrowserHost(FData).get_window_handle(PCefBrowserHost(FData)) Result := PCefBrowserHost(FData)^.get_window_handle(PCefBrowserHost(FData))
end; end;
function TCefBrowserHostRef.GetWindowlessFrameRate: Integer; function TCefBrowserHostRef.GetWindowlessFrameRate: Integer;
begin begin
Result := PCefBrowserHost(FData).get_windowless_frame_rate(PCefBrowserHost(FData)); Result := PCefBrowserHost(FData)^.get_windowless_frame_rate(PCefBrowserHost(FData));
end; end;
function TCefBrowserHostRef.GetOpenerWindowHandle: TCefWindowHandle; function TCefBrowserHostRef.GetOpenerWindowHandle: TCefWindowHandle;
begin begin
Result := PCefBrowserHost(FData).get_opener_window_handle(PCefBrowserHost(FData)); Result := PCefBrowserHost(FData)^.get_opener_window_handle(PCefBrowserHost(FData));
end; end;
function TCefBrowserHostRef.GetRequestContext: ICefRequestContext; function TCefBrowserHostRef.GetRequestContext: ICefRequestContext;
begin begin
Result := TCefRequestContextRef.UnWrap(PCefBrowserHost(FData).get_request_context(FData)); Result := TCefRequestContextRef.UnWrap(PCefBrowserHost(FData)^.get_request_context(FData));
end; end;
procedure TCefBrowserHostRef.GetNavigationEntries(const visitor: ICefNavigationEntryVisitor; currentOnly: Boolean); procedure TCefBrowserHostRef.GetNavigationEntries(const visitor: ICefNavigationEntryVisitor; currentOnly: Boolean);
begin begin
PCefBrowserHost(FData).get_navigation_entries(FData, CefGetData(visitor), Ord(currentOnly)); PCefBrowserHost(FData)^.get_navigation_entries(FData, CefGetData(visitor), Ord(currentOnly));
end; end;
procedure TCefBrowserHostRef.GetNavigationEntriesProc(const proc: TCefNavigationEntryVisitorProc; currentOnly: Boolean); procedure TCefBrowserHostRef.GetNavigationEntriesProc(const proc: TCefNavigationEntryVisitorProc; currentOnly: Boolean);
@ -563,7 +565,7 @@ end;
function TCefBrowserHostRef.GetZoomLevel: Double; function TCefBrowserHostRef.GetZoomLevel: Double;
begin begin
Result := PCefBrowserHost(FData).get_zoom_level(PCefBrowserHost(FData)); Result := PCefBrowserHost(FData)^.get_zoom_level(PCefBrowserHost(FData));
end; end;
procedure TCefBrowserHostRef.IMESetComposition(const text : ustring; procedure TCefBrowserHostRef.IMESetComposition(const text : ustring;
@ -575,7 +577,7 @@ var
TempString : TCefString; TempString : TCefString;
begin begin
TempString := CefString(text); TempString := CefString(text);
PCefBrowserHost(FData).ime_set_composition(PCefBrowserHost(FData), @TempString, underlinesCount, underlines, replacement_range, selection_range); PCefBrowserHost(FData)^.ime_set_composition(PCefBrowserHost(FData), @TempString, underlinesCount, underlines, replacement_range, selection_range);
end; end;
procedure TCefBrowserHostRef.IMECommitText(const text: ustring; const replacement_range : PCefRange; relative_cursor_pos : integer); procedure TCefBrowserHostRef.IMECommitText(const text: ustring; const replacement_range : PCefRange; relative_cursor_pos : integer);
@ -583,57 +585,57 @@ var
TempString : TCefString; TempString : TCefString;
begin begin
TempString := CefString(text); TempString := CefString(text);
PCefBrowserHost(FData).ime_commit_text(PCefBrowserHost(FData), @TempString, replacement_range, relative_cursor_pos); PCefBrowserHost(FData)^.ime_commit_text(PCefBrowserHost(FData), @TempString, replacement_range, relative_cursor_pos);
end; end;
procedure TCefBrowserHostRef.IMEFinishComposingText(keep_selection : boolean); procedure TCefBrowserHostRef.IMEFinishComposingText(keep_selection : boolean);
begin begin
PCefBrowserHost(FData).ime_finish_composing_text(PCefBrowserHost(FData), ord(keep_selection)); PCefBrowserHost(FData)^.ime_finish_composing_text(PCefBrowserHost(FData), ord(keep_selection));
end; end;
procedure TCefBrowserHostRef.IMECancelComposition; procedure TCefBrowserHostRef.IMECancelComposition;
begin begin
PCefBrowserHost(FData).ime_cancel_composition(PCefBrowserHost(FData)); PCefBrowserHost(FData)^.ime_cancel_composition(PCefBrowserHost(FData));
end; end;
function TCefBrowserHostRef.HasDevTools: Boolean; function TCefBrowserHostRef.HasDevTools: Boolean;
begin begin
Result := PCefBrowserHost(FData).has_dev_tools(FData) <> 0; Result := PCefBrowserHost(FData)^.has_dev_tools(FData) <> 0;
end; end;
function TCefBrowserHostRef.HasView: Boolean; function TCefBrowserHostRef.HasView: Boolean;
begin begin
Result := PCefBrowserHost(FData).has_view(FData) <> 0; Result := PCefBrowserHost(FData)^.has_view(FData) <> 0;
end; end;
procedure TCefBrowserHostRef.Invalidate(kind: TCefPaintElementType); procedure TCefBrowserHostRef.Invalidate(kind: TCefPaintElementType);
begin begin
PCefBrowserHost(FData).invalidate(FData, kind); PCefBrowserHost(FData)^.invalidate(FData, kind);
end; end;
function TCefBrowserHostRef.IsMouseCursorChangeDisabled: Boolean; function TCefBrowserHostRef.IsMouseCursorChangeDisabled: Boolean;
begin begin
Result := PCefBrowserHost(FData).is_mouse_cursor_change_disabled(FData) <> 0 Result := PCefBrowserHost(FData)^.is_mouse_cursor_change_disabled(FData) <> 0
end; end;
function TCefBrowserHostRef.IsWindowRenderingDisabled: Boolean; function TCefBrowserHostRef.IsWindowRenderingDisabled: Boolean;
begin begin
Result := PCefBrowserHost(FData).is_window_rendering_disabled(FData) <> 0 Result := PCefBrowserHost(FData)^.is_window_rendering_disabled(FData) <> 0
end; end;
procedure TCefBrowserHostRef.NotifyMoveOrResizeStarted; procedure TCefBrowserHostRef.NotifyMoveOrResizeStarted;
begin begin
PCefBrowserHost(FData).notify_move_or_resize_started(PCefBrowserHost(FData)); PCefBrowserHost(FData)^.notify_move_or_resize_started(PCefBrowserHost(FData));
end; end;
procedure TCefBrowserHostRef.NotifyScreenInfoChanged; procedure TCefBrowserHostRef.NotifyScreenInfoChanged;
begin begin
PCefBrowserHost(FData).notify_screen_info_changed(PCefBrowserHost(FData)); PCefBrowserHost(FData)^.notify_screen_info_changed(PCefBrowserHost(FData));
end; end;
procedure TCefBrowserHostRef.SetZoomLevel(const zoomLevel: Double); procedure TCefBrowserHostRef.SetZoomLevel(const zoomLevel: Double);
begin begin
PCefBrowserHost(FData).set_zoom_level(PCefBrowserHost(FData), zoomLevel); PCefBrowserHost(FData)^.set_zoom_level(PCefBrowserHost(FData), zoomLevel);
end; end;
procedure TCefBrowserHostRef.ShowDevTools(const windowInfo : PCefWindowInfo; procedure TCefBrowserHostRef.ShowDevTools(const windowInfo : PCefWindowInfo;
@ -641,42 +643,43 @@ procedure TCefBrowserHostRef.ShowDevTools(const windowInfo : PCefWindowInf
const settings : PCefBrowserSettings; const settings : PCefBrowserSettings;
inspectElementAt : PCefPoint); inspectElementAt : PCefPoint);
begin begin
PCefBrowserHost(FData).show_dev_tools(FData, windowInfo, CefGetData(client), settings, inspectElementAt); PCefBrowserHost(FData)^.show_dev_tools(FData, windowInfo, CefGetData(client), settings, inspectElementAt);
end; end;
procedure TCefBrowserHostRef.StartDownload(const url: ustring); procedure TCefBrowserHostRef.StartDownload(const url: ustring);
var var
u: TCefString; TempURL : TCefString;
begin begin
u := CefString(url); TempURL := CefString(url);
PCefBrowserHost(FData).start_download(PCefBrowserHost(FData), @u); PCefBrowserHost(FData)^.start_download(PCefBrowserHost(FData), @TempURL);
end; end;
procedure TCefBrowserHostRef.StopFinding(clearSelection: Boolean); procedure TCefBrowserHostRef.StopFinding(clearSelection: Boolean);
begin begin
PCefBrowserHost(FData).stop_finding(FData, Ord(clearSelection)); PCefBrowserHost(FData)^.stop_finding(FData, Ord(clearSelection));
end; end;
function TCefBrowserHostRef.TryCloseBrowser: Boolean; function TCefBrowserHostRef.TryCloseBrowser: Boolean;
begin begin
Result := PCefBrowserHost(FData).try_close_browser(FData) <> 0; Result := PCefBrowserHost(FData)^.try_close_browser(FData) <> 0;
end; end;
class function TCefBrowserHostRef.UnWrap(data: Pointer): ICefBrowserHost; class function TCefBrowserHostRef.UnWrap(data: Pointer): ICefBrowserHost;
begin begin
if data <> nil then if (data <> nil) then
Result := Create(data) as ICefBrowserHost else Result := Create(data) as ICefBrowserHost
else
Result := nil; Result := nil;
end; end;
procedure TCefBrowserHostRef.WasHidden(hidden: Boolean); procedure TCefBrowserHostRef.WasHidden(hidden: Boolean);
begin begin
PCefBrowserHost(FData).was_hidden(FData, Ord(hidden)); PCefBrowserHost(FData)^.was_hidden(FData, Ord(hidden));
end; end;
procedure TCefBrowserHostRef.WasResized; procedure TCefBrowserHostRef.WasResized;
begin begin
PCefBrowserHost(FData).was_resized(FData); PCefBrowserHost(FData)^.was_resized(FData);
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -36,6 +36,10 @@
*) *)
unit uCEFBrowserProcessHandler; unit uCEFBrowserProcessHandler;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
@ -152,11 +156,11 @@ begin
with PCefBrowserProcessHandler(FData)^ do with PCefBrowserProcessHandler(FData)^ do
begin begin
on_context_initialized := cef_browser_process_handler_on_context_initialized; on_context_initialized := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_context_initialized;
on_before_child_process_launch := cef_browser_process_handler_on_before_child_process_launch; on_before_child_process_launch := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_before_child_process_launch;
on_render_process_thread_created := cef_browser_process_handler_on_render_process_thread_created; on_render_process_thread_created := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_render_process_thread_created;
get_print_handler := cef_browser_process_handler_get_print_handler; get_print_handler := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_get_print_handler;
on_schedule_message_pump_work := cef_browser_process_handler_on_schedule_message_pump_work; on_schedule_message_pump_work := {$IFDEF FPC}@{$ENDIF}cef_browser_process_handler_on_schedule_message_pump_work;
end; end;
end; end;

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFCallback; unit uCEFCallback;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFChromium; unit uCEFChromium;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -50,11 +54,17 @@ uses
{$IFDEF DELPHI16_UP} {$IFDEF DELPHI16_UP}
{$IFDEF MSWINDOWS}WinApi.Windows, WinApi.Messages, Vcl.Controls, Vcl.Graphics, Vcl.Forms, WinApi.ActiveX,{$ENDIF} System.Classes, {$IFDEF MSWINDOWS}WinApi.Windows, WinApi.Messages, Vcl.Controls, Vcl.Graphics, Vcl.Forms, WinApi.ActiveX,{$ENDIF} System.Classes,
{$ELSE} {$ELSE}
Windows, Messages, Classes, Controls, Graphics, Forms, ActiveX, Windows, Classes, Forms, Controls, Graphics, ActiveX,
{$IFDEF FPC}
LCLProc, LCLType, LCLIntf, LResources, LMessages, InterfaceBase,
{$ELSE}
Messages,
{$ENDIF}
{$ENDIF} {$ENDIF}
uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFMiscFunctions, uCEFClient, uCEFTypes, uCEFInterfaces, uCEFLibFunctions, uCEFMiscFunctions, uCEFClient,
uCEFConstants, uCEFTask, uCEFDomVisitor, uCEFChromiumEvents, uCEFConstants, uCEFTask, uCEFDomVisitor, uCEFChromiumEvents,
uCEFChromiumOptions, uCEFChromiumFontOptions, uCEFPDFPrintOptions, uCEFDragAndDropMgr; {$IFNDEF FPC}uCEFDragAndDropMgr,{$ENDIF}
uCEFChromiumOptions, uCEFChromiumFontOptions, uCEFPDFPrintOptions;
type type
TChromium = class(TComponent, IChromiumEvents) TChromium = class(TComponent, IChromiumEvents)
@ -70,15 +80,15 @@ type
FDefaultEncoding : ustring; FDefaultEncoding : ustring;
FProxyType : integer; FProxyType : integer;
FProxyScheme : TCefProxyScheme; FProxyScheme : TCefProxyScheme;
FProxyServer : string; FProxyServer : ustring;
FProxyPort : integer; FProxyPort : integer;
FProxyUsername : string; FProxyUsername : ustring;
FProxyPassword : string; FProxyPassword : ustring;
FProxyScriptURL : string; FProxyScriptURL : ustring;
FProxyByPassList : string; FProxyByPassList : ustring;
FUpdatePreferences : boolean; FUpdatePreferences : boolean;
FCustomHeaderName : string; FCustomHeaderName : ustring;
FCustomHeaderValue : string; FCustomHeaderValue : ustring;
FAddCustomHeader : boolean; FAddCustomHeader : boolean;
FDoNotTrack : boolean; FDoNotTrack : boolean;
FSendReferrer : boolean; FSendReferrer : boolean;
@ -89,7 +99,6 @@ type
FCookiePrefs : integer; FCookiePrefs : integer;
FImagesPrefs : integer; FImagesPrefs : integer;
FZoomStep : byte; FZoomStep : byte;
FWindowName : string;
FPrefsFileName : string; FPrefsFileName : string;
FIsOSR : boolean; FIsOSR : boolean;
FInitialized : boolean; FInitialized : boolean;
@ -99,22 +108,25 @@ type
FDevWindowInfo : TCefWindowInfo; FDevWindowInfo : TCefWindowInfo;
FDevBrowserSettings : TCefBrowserSettings; FDevBrowserSettings : TCefBrowserSettings;
FDragOperations : TCefDragOperations; FDragOperations : TCefDragOperations;
{$IFNDEF FPC}
FDragDropManager : TCEFDragAndDropMgr; FDragDropManager : TCEFDragAndDropMgr;
{$ENDIF}
FDropTargetCtrl : TWinControl; FDropTargetCtrl : TWinControl;
FDragAndDropInitialized : boolean; FDragAndDropInitialized : boolean;
FWebRTCIPHandlingPolicy : TCefWebRTCHandlingPolicy; FWebRTCIPHandlingPolicy : TCefWebRTCHandlingPolicy;
FWebRTCMultipleRoutes : TCefState; FWebRTCMultipleRoutes : TCefState;
FWebRTCNonProxiedUDP : TCefState; FWebRTCNonProxiedUDP : TCefState;
{$IFNDEF FPC}
FOldBrowserCompWndPrc : TFNWndProc; FOldBrowserCompWndPrc : TFNWndProc;
FOldWidgetCompWndPrc : TFNWndProc; FOldWidgetCompWndPrc : TFNWndProc;
FOldRenderCompWndPrc : TFNWndProc; FOldRenderCompWndPrc : TFNWndProc;
FBrowserCompHWND : THandle;
FWidgetCompHWND : THandle;
FRenderCompHWND : THandle;
FBrowserCompStub : Pointer; FBrowserCompStub : Pointer;
FWidgetCompStub : Pointer; FWidgetCompStub : Pointer;
FRenderCompStub : Pointer; FRenderCompStub : Pointer;
{$ENDIF}
FBrowserCompHWND : THandle;
FWidgetCompHWND : THandle;
FRenderCompHWND : THandle;
// ICefClient // ICefClient
FOnProcessMessageReceived : TOnProcessMessageReceived; FOnProcessMessageReceived : TOnProcessMessageReceived;
@ -219,9 +231,11 @@ type
FOnPrefsAvailable : TOnPrefsAvailableEvent; FOnPrefsAvailable : TOnPrefsAvailableEvent;
FOnCookiesDeleted : TOnCookiesDeletedEvent; FOnCookiesDeleted : TOnCookiesDeletedEvent;
FOnResolvedHostAvailable : TOnResolvedIPsAvailableEvent; FOnResolvedHostAvailable : TOnResolvedIPsAvailableEvent;
{$IFNDEF FPC}
FOnBrowserCompMsg : TOnCompMsgEvent; FOnBrowserCompMsg : TOnCompMsgEvent;
FOnWidgetCompMsg : TOnCompMsgEvent; FOnWidgetCompMsg : TOnCompMsgEvent;
FOnRenderCompMsg : TOnCompMsgEvent; FOnRenderCompMsg : TOnCompMsgEvent;
{$ENDIF}
function GetIsLoading : boolean; function GetIsLoading : boolean;
function GetMultithreadApp : boolean; function GetMultithreadApp : boolean;
@ -232,7 +246,7 @@ type
function GetHasBrowser : boolean; function GetHasBrowser : boolean;
function GetCanGoBack : boolean; function GetCanGoBack : boolean;
function GetCanGoForward : boolean; function GetCanGoForward : boolean;
function GetDocumentURL : string; function GetDocumentURL : ustring;
function GetZoomLevel : double; function GetZoomLevel : double;
function GetZoomPct : double; function GetZoomPct : double;
function GetIsPopUp : boolean; function GetIsPopUp : boolean;
@ -243,7 +257,7 @@ type
function GetVisibleNavigationEntry : ICefNavigationEntry; function GetVisibleNavigationEntry : ICefNavigationEntry;
function GetHasValidMainFrame : boolean; function GetHasValidMainFrame : boolean;
function GetFrameCount : NativeUInt; function GetFrameCount : NativeUInt;
function GetRequestContextCache : string; function GetRequestContextCache : ustring;
function GetRequestContextIsGlobal : boolean; function GetRequestContextIsGlobal : boolean;
procedure SetDoNotTrack(aValue : boolean); procedure SetDoNotTrack(aValue : boolean);
@ -259,14 +273,14 @@ type
procedure SetImagesPrefs(aValue : integer); procedure SetImagesPrefs(aValue : integer);
procedure SetProxyType(aValue : integer); procedure SetProxyType(aValue : integer);
procedure SetProxyScheme(aValue : TCefProxyScheme); procedure SetProxyScheme(aValue : TCefProxyScheme);
procedure SetProxyServer(const aValue : string); procedure SetProxyServer(const aValue : ustring);
procedure SetProxyPort(aValue : integer); procedure SetProxyPort(aValue : integer);
procedure SetProxyUsername(const aValue : string); procedure SetProxyUsername(const aValue : ustring);
procedure SetProxyPassword(const aValue : string); procedure SetProxyPassword(const aValue : ustring);
procedure SetProxyScriptURL(const aValue : string); procedure SetProxyScriptURL(const aValue : ustring);
procedure SetProxyByPassList(const aValue : string); procedure SetProxyByPassList(const aValue : ustring);
procedure SetCustomHeaderName(const aValue : string); procedure SetCustomHeaderName(const aValue : ustring);
procedure SetCustomHeaderValue(const aValue : string); procedure SetCustomHeaderValue(const aValue : ustring);
procedure SetZoomLevel(const aValue : double); procedure SetZoomLevel(const aValue : double);
procedure SetZoomPct(const aValue : double); procedure SetZoomPct(const aValue : double);
procedure SetZoomStep(aValue : byte); procedure SetZoomStep(aValue : byte);
@ -283,13 +297,13 @@ type
procedure InitializeEvents; procedure InitializeEvents;
procedure InitializeSettings(var aSettings : TCefBrowserSettings); procedure InitializeSettings(var aSettings : TCefBrowserSettings);
procedure GetPrintPDFSettings(var aSettings : TCefPdfPrintSettings; const aTitle, aURL : string); procedure GetPrintPDFSettings(var aSettings : TCefPdfPrintSettings; const aTitle, aURL : ustring);
function UpdateProxyPrefs(const aBrowser: ICefBrowser) : boolean; function UpdateProxyPrefs(const aBrowser: ICefBrowser) : boolean;
function UpdatePreference(const aBrowser: ICefBrowser; const aName : string; aValue : boolean) : boolean; overload; function UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; aValue : boolean) : boolean; overload;
function UpdatePreference(const aBrowser: ICefBrowser; const aName : string; aValue : integer) : boolean; overload; function UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; aValue : integer) : boolean; overload;
function UpdatePreference(const aBrowser: ICefBrowser; const aName : string; const aValue : double) : boolean; overload; function UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; const aValue : double) : boolean; overload;
function UpdatePreference(const aBrowser: ICefBrowser; const aName, aValue : string) : boolean; overload; function UpdatePreference(const aBrowser: ICefBrowser; const aName, aValue : ustring) : boolean; overload;
procedure HandleDictionary(const aDict : ICefDictionaryValue; var aResultSL : TStringList; const aRoot : string); procedure HandleDictionary(const aDict : ICefDictionaryValue; var aResultSL : TStringList; const aRoot : string);
procedure HandleNull(const aValue : ICefValue; var aResultSL : TStringList; const aRoot, aKey : string); procedure HandleNull(const aValue : ICefValue; var aResultSL : TStringList; const aRoot, aKey : string);
@ -302,14 +316,14 @@ type
procedure HandleInvalid(const aValue : ICefValue; var aResultSL : TStringList; const aRoot, aKey : string); procedure HandleInvalid(const aValue : ICefValue; var aResultSL : TStringList; const aRoot, aKey : string);
function MustCreateLoadHandler : boolean; virtual; function MustCreateLoadHandler : boolean; virtual;
function MustCreateFocusHandler : boolean; virtual; function MustCreateFocusHandler : boolean; virtual;
function MustCreateContextMenuHandler : boolean; virtual; function MustCreateContextMenuHandler : boolean; virtual;
function MustCreateDialogHandler : boolean; virtual; function MustCreateDialogHandler : boolean; virtual;
function MustCreateKeyboardHandler : boolean; virtual; function MustCreateKeyboardHandler : boolean; virtual;
function MustCreateDisplayHandler : boolean; virtual; function MustCreateDisplayHandler : boolean; virtual;
function MustCreateDownloadHandler : boolean; virtual; function MustCreateDownloadHandler : boolean; virtual;
function MustCreateJsDialogHandler : boolean; virtual; function MustCreateJsDialogHandler : boolean; virtual;
function MustCreateDragHandler : boolean; virtual; function MustCreateDragHandler : boolean; virtual;
function MustCreateFindHandler : boolean; virtual; function MustCreateFindHandler : boolean; virtual;
procedure PrefsAvailableMsg(var aMessage : TMessage); procedure PrefsAvailableMsg(var aMessage : TMessage);
@ -322,9 +336,11 @@ type
procedure FreeAndNilStub(var aStub : pointer); procedure FreeAndNilStub(var aStub : pointer);
procedure CreateStub(const aMethod : TWndMethod; var aStub : Pointer); procedure CreateStub(const aMethod : TWndMethod; var aStub : Pointer);
procedure WndProc(var aMessage: TMessage); procedure WndProc(var aMessage: TMessage);
{$IFNDEF FPC}
procedure BrowserCompWndProc(var aMessage: TMessage); procedure BrowserCompWndProc(var aMessage: TMessage);
procedure WidgetCompWndProc(var aMessage: TMessage); procedure WidgetCompWndProc(var aMessage: TMessage);
procedure RenderCompWndProc(var aMessage: TMessage); procedure RenderCompWndProc(var aMessage: TMessage);
{$ENDIF}
procedure DragDropManager_OnDragEnter(Sender: TObject; const aDragData : ICefDragData; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); procedure DragDropManager_OnDragEnter(Sender: TObject; const aDragData : ICefDragData; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint);
procedure DragDropManager_OnDragOver(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint); procedure DragDropManager_OnDragOver(Sender: TObject; grfKeyState: Longint; pt: TPoint; var dwEffect: Longint);
@ -434,7 +450,7 @@ type
// Custom // Custom
procedure doCookiesDeleted(numDeleted : integer); virtual; procedure doCookiesDeleted(numDeleted : integer); virtual;
procedure doPdfPrintFinished(aResultOK : boolean); virtual; procedure doPdfPrintFinished(aResultOK : boolean); virtual;
procedure doTextResultAvailable(const aText : string); virtual; procedure doTextResultAvailable(const aText : ustring); virtual;
procedure doUpdatePreferences(const aBrowser: ICefBrowser); virtual; procedure doUpdatePreferences(const aBrowser: ICefBrowser); virtual;
procedure doUpdateOwnPreferences; virtual; procedure doUpdateOwnPreferences; virtual;
function doSavePreferences : boolean; virtual; function doSavePreferences : boolean; virtual;
@ -451,8 +467,8 @@ type
function ShareRequestContext(var aContext : ICefRequestContext; const aHandler : ICefRequestContextHandler = nil) : boolean; function ShareRequestContext(var aContext : ICefRequestContext; const aHandler : ICefRequestContextHandler = nil) : boolean;
procedure InitializeDragAndDrop(const aDropTargetCtrl : TWinControl); procedure InitializeDragAndDrop(const aDropTargetCtrl : TWinControl);
procedure ShutdownDragAndDrop; procedure ShutdownDragAndDrop;
function CreateBrowser(const aBrowserParent : TWinControl = nil; const aWindowName : string = ''; const aContext : ICefRequestContext = nil; const aCookiesPath : string = ''; aPersistSessionCookies : boolean = False) : boolean; overload; virtual; function CreateBrowser(const aBrowserParent : TWinControl = nil; const aWindowName : ustring = ''; const aContext : ICefRequestContext = nil; const aCookiesPath : ustring = ''; aPersistSessionCookies : boolean = False) : boolean; overload; virtual;
function CreateBrowser(aParentHandle : HWND; aParentRect : TRect; const aWindowName : string = ''; const aContext : ICefRequestContext = nil; const aCookiesPath : string = ''; aPersistSessionCookies : boolean = False) : boolean; overload; virtual; function CreateBrowser(aParentHandle : HWND; aParentRect : TRect; const aWindowName : ustring = ''; const aContext : ICefRequestContext = nil; const aCookiesPath : ustring = ''; aPersistSessionCookies : boolean = False) : boolean; overload; virtual;
procedure LoadURL(const aURL : ustring); procedure LoadURL(const aURL : ustring);
procedure LoadString(const aString : ustring; const aURL : ustring = ''); procedure LoadString(const aString : ustring; const aURL : ustring = '');
@ -562,18 +578,17 @@ type
property RenderHandle : THandle read FRenderCompHWND; property RenderHandle : THandle read FRenderCompHWND;
property FrameIsFocused : boolean read GetFrameIsFocused; property FrameIsFocused : boolean read GetFrameIsFocused;
property Initialized : boolean read GetInitialized; property Initialized : boolean read GetInitialized;
property RequestContextCache : string read GetRequestContextCache; property RequestContextCache : ustring read GetRequestContextCache;
property RequestContextIsGlobal : boolean read GetRequestContextIsGlobal; property RequestContextIsGlobal : boolean read GetRequestContextIsGlobal;
property CookiePrefs : integer read FCookiePrefs write SetCookiePrefs; property CookiePrefs : integer read FCookiePrefs write SetCookiePrefs;
property ImagesPrefs : integer read FImagesPrefs write SetImagesPrefs; property ImagesPrefs : integer read FImagesPrefs write SetImagesPrefs;
property DocumentURL : string read GetDocumentURL; property DocumentURL : ustring read GetDocumentURL;
property WindowName : string read FWindowName write FWindowName;
property ZoomLevel : double read GetZoomLevel write SetZoomLevel; property ZoomLevel : double read GetZoomLevel write SetZoomLevel;
property ZoomPct : double read GetZoomPct write SetZoomPct; property ZoomPct : double read GetZoomPct write SetZoomPct;
property ZoomStep : byte read FZoomStep write SetZoomStep; property ZoomStep : byte read FZoomStep write SetZoomStep;
property WindowlessFrameRate : integer read GetWindowlessFrameRate write SetWindowlessFrameRate; property WindowlessFrameRate : integer read GetWindowlessFrameRate write SetWindowlessFrameRate;
property CustomHeaderName : string read FCustomHeaderName write SetCustomHeaderName; property CustomHeaderName : ustring read FCustomHeaderName write SetCustomHeaderName;
property CustomHeaderValue : string read FCustomHeaderValue write SetCustomHeaderValue; property CustomHeaderValue : ustring read FCustomHeaderValue write SetCustomHeaderValue;
property DoNotTrack : boolean read FDoNotTrack write SetDoNotTrack; property DoNotTrack : boolean read FDoNotTrack write SetDoNotTrack;
property SendReferrer : boolean read FSendReferrer write SetSendReferrer; property SendReferrer : boolean read FSendReferrer write SetSendReferrer;
property HyperlinkAuditing : boolean read FHyperlinkAuditing write SetHyperlinkAuditing; property HyperlinkAuditing : boolean read FHyperlinkAuditing write SetHyperlinkAuditing;
@ -590,12 +605,12 @@ type
property ProxyType : integer read FProxyType write SetProxyType; property ProxyType : integer read FProxyType write SetProxyType;
property ProxyScheme : TCefProxyScheme read FProxyScheme write SetProxyScheme; property ProxyScheme : TCefProxyScheme read FProxyScheme write SetProxyScheme;
property ProxyServer : string read FProxyServer write SetProxyServer; property ProxyServer : ustring read FProxyServer write SetProxyServer;
property ProxyPort : integer read FProxyPort write SetProxyPort; property ProxyPort : integer read FProxyPort write SetProxyPort;
property ProxyUsername : string read FProxyUsername write SetProxyUsername; property ProxyUsername : ustring read FProxyUsername write SetProxyUsername;
property ProxyPassword : string read FProxyPassword write SetProxyPassword; property ProxyPassword : ustring read FProxyPassword write SetProxyPassword;
property ProxyScriptURL : string read FProxyScriptURL write SetProxyScriptURL; property ProxyScriptURL : ustring read FProxyScriptURL write SetProxyScriptURL;
property ProxyByPassList : string read FProxyByPassList write SetProxyByPassList; property ProxyByPassList : ustring read FProxyByPassList write SetProxyByPassList;
published published
property OnTextResultAvailable : TOnTextResultAvailableEvent read FOnTextResultAvailable write FOnTextResultAvailable; property OnTextResultAvailable : TOnTextResultAvailableEvent read FOnTextResultAvailable write FOnTextResultAvailable;
@ -603,9 +618,11 @@ type
property OnPrefsAvailable : TOnPrefsAvailableEvent read FOnPrefsAvailable write FOnPrefsAvailable; property OnPrefsAvailable : TOnPrefsAvailableEvent read FOnPrefsAvailable write FOnPrefsAvailable;
property OnCookiesDeleted : TOnCookiesDeletedEvent read FOnCookiesDeleted write FOnCookiesDeleted; property OnCookiesDeleted : TOnCookiesDeletedEvent read FOnCookiesDeleted write FOnCookiesDeleted;
property OnResolvedHostAvailable : TOnResolvedIPsAvailableEvent read FOnResolvedHostAvailable write FOnResolvedHostAvailable; property OnResolvedHostAvailable : TOnResolvedIPsAvailableEvent read FOnResolvedHostAvailable write FOnResolvedHostAvailable;
{$IFNDEF FPC}
property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg; property OnBrowserCompMsg : TOnCompMsgEvent read FOnBrowserCompMsg write FOnBrowserCompMsg;
property OnWidgetCompMsg : TOnCompMsgEvent read FOnWidgetCompMsg write FOnWidgetCompMsg; property OnWidgetCompMsg : TOnCompMsgEvent read FOnWidgetCompMsg write FOnWidgetCompMsg;
property OnRenderCompMsg : TOnCompMsgEvent read FOnRenderCompMsg write FOnRenderCompMsg; property OnRenderCompMsg : TOnCompMsgEvent read FOnRenderCompMsg write FOnRenderCompMsg;
{$ENDIF}
// ICefClient // ICefClient
property OnProcessMessageReceived : TOnProcessMessageReceived read FOnProcessMessageReceived write FOnProcessMessageReceived; property OnProcessMessageReceived : TOnProcessMessageReceived read FOnProcessMessageReceived write FOnProcessMessageReceived;
@ -706,6 +723,10 @@ type
end; end;
{$IFDEF FPC}
procedure Register;
{$ENDIF}
implementation implementation
uses uses
@ -715,7 +736,7 @@ uses
SysUtils, Math, SysUtils, Math,
{$ENDIF} {$ENDIF}
uCEFBrowser, uCEFValue, uCEFDictionaryValue, uCEFStringMultimap, uCEFFrame, uCEFBrowser, uCEFValue, uCEFDictionaryValue, uCEFStringMultimap, uCEFFrame,
uCEFApplication, uCEFProcessMessage, uCEFRequestContext, uOLEDragAndDrop, uCEFApplication, uCEFProcessMessage, uCEFRequestContext, {$IFNDEF FPC}uOLEDragAndDrop,{$ENDIF}
uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor; uCEFPDFPrintCallback, uCEFResolveCallback, uCEFDeleteCookiesCallback, uCEFStringVisitor;
constructor TChromium.Create(AOwner: TComponent); constructor TChromium.Create(AOwner: TComponent);
@ -746,19 +767,22 @@ begin
FCookiePrefs := CEF_CONTENT_SETTING_ALLOW; FCookiePrefs := CEF_CONTENT_SETTING_ALLOW;
FImagesPrefs := CEF_CONTENT_SETTING_ALLOW; FImagesPrefs := CEF_CONTENT_SETTING_ALLOW;
FZoomStep := ZOOM_STEP_DEF; FZoomStep := ZOOM_STEP_DEF;
FWindowName := ''; {$IFNDEF FPC}
FOldBrowserCompWndPrc := nil; FOldBrowserCompWndPrc := nil;
FOldWidgetCompWndPrc := nil; FOldWidgetCompWndPrc := nil;
FOldRenderCompWndPrc := nil; FOldRenderCompWndPrc := nil;
FBrowserCompHWND := 0;
FWidgetCompHWND := 0;
FRenderCompHWND := 0;
FBrowserCompStub := nil; FBrowserCompStub := nil;
FWidgetCompStub := nil; FWidgetCompStub := nil;
FRenderCompStub := nil; FRenderCompStub := nil;
{$ENDIF}
FBrowserCompHWND := 0;
FWidgetCompHWND := 0;
FRenderCompHWND := 0;
FDragOperations := DRAG_OPERATION_NONE; FDragOperations := DRAG_OPERATION_NONE;
{$IFNDEF FPC}
FDragDropManager := nil; FDragDropManager := nil;
{$ENDIF}
FDropTargetCtrl := nil; FDropTargetCtrl := nil;
FDragAndDropInitialized := False; FDragAndDropInitialized := False;
@ -790,7 +814,9 @@ destructor TChromium.Destroy;
begin begin
try try
try try
{$IFNDEF FPC}
if (FDragDropManager <> nil) then FreeAndNil(FDragDropManager); if (FDragDropManager <> nil) then FreeAndNil(FDragDropManager);
{$ENDIF}
if (FCompHandle <> 0) then if (FCompHandle <> 0) then
begin begin
@ -814,6 +840,7 @@ end;
procedure TChromium.BeforeDestruction; procedure TChromium.BeforeDestruction;
begin begin
{$IFNDEF FPC}
if (FBrowserCompHWND <> 0) and (FOldBrowserCompWndPrc <> nil) then if (FBrowserCompHWND <> 0) and (FOldBrowserCompWndPrc <> nil) then
begin begin
SetWindowLongPtr(FBrowserCompHWND, GWL_WNDPROC, NativeInt(FOldBrowserCompWndPrc)); SetWindowLongPtr(FBrowserCompHWND, GWL_WNDPROC, NativeInt(FOldBrowserCompWndPrc));
@ -834,6 +861,7 @@ begin
FreeAndNilStub(FRenderCompStub); FreeAndNilStub(FRenderCompStub);
FOldRenderCompWndPrc := nil; FOldRenderCompWndPrc := nil;
end; end;
{$ENDIF}
DestroyClientHandler; DestroyClientHandler;
@ -875,13 +903,22 @@ begin
end; end;
procedure TChromium.AfterConstruction; procedure TChromium.AfterConstruction;
{$IFDEF FPC}
var
TempWndMethod : TWndMethod;
{$ENDIF}
begin begin
inherited AfterConstruction; inherited AfterConstruction;
try try
if not(csDesigning in ComponentState) then if not(csDesigning in ComponentState) then
begin begin
{$IFDEF FPC}
TempWndMethod := @WndProc;
FCompHandle := AllocateHWnd(TempWndMethod);
{$ELSE}
FCompHandle := AllocateHWnd(WndProc); FCompHandle := AllocateHWnd(WndProc);
{$ENDIF}
FOptions := TChromiumOptions.Create; FOptions := TChromiumOptions.Create;
FFontOptions := TChromiumFontOptions.Create; FFontOptions := TChromiumFontOptions.Create;
FPDFPrintOptions := TPDFPrintOptions.Create; FPDFPrintOptions := TPDFPrintOptions.Create;
@ -903,16 +940,16 @@ begin
FHandler := TCustomClientHandler.Create(Self, FHandler := TCustomClientHandler.Create(Self,
MustCreateLoadHandler, MustCreateLoadHandler,
MustCreateFocusHandler, MustCreateFocusHandler,
MustCreateContextMenuHandler, MustCreateContextMenuHandler,
MustCreateDialogHandler, MustCreateDialogHandler,
MustCreateKeyboardHandler, MustCreateKeyboardHandler,
MustCreateDisplayHandler, MustCreateDisplayHandler,
MustCreateDownloadHandler, MustCreateDownloadHandler,
MustCreateJsDialogHandler, MustCreateJsDialogHandler,
True, True,
FIsOSR, // Create the Render Handler in OSR mode only FIsOSR, // Create the Render Handler in OSR mode only
True, True,
MustCreateDragHandler, MustCreateDragHandler,
MustCreateFindHandler); MustCreateFindHandler);
Result := True; Result := True;
@ -1039,15 +1076,17 @@ begin
FOnPrefsAvailable := nil; FOnPrefsAvailable := nil;
FOnCookiesDeleted := nil; FOnCookiesDeleted := nil;
FOnResolvedHostAvailable := nil; FOnResolvedHostAvailable := nil;
{$IFNDEF FPC}
FOnBrowserCompMsg := nil; FOnBrowserCompMsg := nil;
FOnWidgetCompMsg := nil; FOnWidgetCompMsg := nil;
FOnRenderCompMsg := nil; FOnRenderCompMsg := nil;
{$ENDIF}
end; end;
function TChromium.CreateBrowser(const aBrowserParent : TWinControl; function TChromium.CreateBrowser(const aBrowserParent : TWinControl;
const aWindowName : string; const aWindowName : ustring;
const aContext : ICefRequestContext; const aContext : ICefRequestContext;
const aCookiesPath : string; const aCookiesPath : ustring;
aPersistSessionCookies : boolean) : boolean; aPersistSessionCookies : boolean) : boolean;
var var
TempHandle : HWND; TempHandle : HWND;
@ -1069,9 +1108,9 @@ end;
function TChromium.CreateBrowser( aParentHandle : HWND; function TChromium.CreateBrowser( aParentHandle : HWND;
aParentRect : TRect; aParentRect : TRect;
const aWindowName : string; const aWindowName : ustring;
const aContext : ICefRequestContext; const aContext : ICefRequestContext;
const aCookiesPath : string; const aCookiesPath : ustring;
aPersistSessionCookies : boolean) : boolean; aPersistSessionCookies : boolean) : boolean;
var var
TempCookieManager : ICefCookieManager; TempCookieManager : ICefCookieManager;
@ -1127,6 +1166,7 @@ procedure TChromium.InitializeDragAndDrop(const aDropTargetCtrl : TWinControl);
var var
TempDropTarget : IDropTarget; TempDropTarget : IDropTarget;
begin begin
{$IFNDEF FPC}
if FIsOSR and if FIsOSR and
not(FDragAndDropInitialized) and not(FDragAndDropInitialized) and
(FDragDropManager = nil) and (FDragDropManager = nil) and
@ -1146,6 +1186,7 @@ begin
FDragAndDropInitialized := True; FDragAndDropInitialized := True;
end; end;
{$ENDIF}
end; end;
function TChromium.ShareRequestContext(var aContext : ICefRequestContext; function TChromium.ShareRequestContext(var aContext : ICefRequestContext;
@ -1394,7 +1435,7 @@ begin
end; end;
end; end;
procedure TChromium.GetPrintPDFSettings(var aSettings : TCefPdfPrintSettings; const aTitle, aURL : string); procedure TChromium.GetPrintPDFSettings(var aSettings : TCefPdfPrintSettings; const aTitle, aURL : ustring);
begin begin
if (FPDFPrintOptions <> nil) then if (FPDFPrintOptions <> nil) then
begin begin
@ -1630,7 +1671,7 @@ begin
Result := 0; Result := 0;
end; end;
function TChromium.GetRequestContextCache : string; function TChromium.GetRequestContextCache : ustring;
begin begin
if Initialized then if Initialized then
Result := FBrowser.host.RequestContext.CachePath Result := FBrowser.host.RequestContext.CachePath
@ -1671,7 +1712,7 @@ begin
Result := FInitialized and not(FClosing) and (FBrowser <> nil); Result := FInitialized and not(FClosing) and (FBrowser <> nil);
end; end;
function TChromium.GetDocumentURL : string; function TChromium.GetDocumentURL : ustring;
var var
TempFrame : ICefFrame; TempFrame : ICefFrame;
begin begin
@ -1877,7 +1918,7 @@ begin
end; end;
end; end;
procedure TChromium.SetProxyServer(const aValue : string); procedure TChromium.SetProxyServer(const aValue : ustring);
begin begin
if (FProxyServer <> aValue) then if (FProxyServer <> aValue) then
begin begin
@ -1895,7 +1936,7 @@ begin
end; end;
end; end;
procedure TChromium.SetProxyUsername(const aValue : string); procedure TChromium.SetProxyUsername(const aValue : ustring);
begin begin
if (FProxyUsername <> aValue) then if (FProxyUsername <> aValue) then
begin begin
@ -1904,7 +1945,7 @@ begin
end; end;
end; end;
procedure TChromium.SetProxyPassword(const aValue : string); procedure TChromium.SetProxyPassword(const aValue : ustring);
begin begin
if (FProxyPassword <> aValue) then if (FProxyPassword <> aValue) then
begin begin
@ -1913,7 +1954,7 @@ begin
end; end;
end; end;
procedure TChromium.SetProxyScriptURL(const aValue : string); procedure TChromium.SetProxyScriptURL(const aValue : ustring);
begin begin
if (FProxyScriptURL <> aValue) then if (FProxyScriptURL <> aValue) then
begin begin
@ -1922,7 +1963,7 @@ begin
end; end;
end; end;
procedure TChromium.SetProxyByPassList(const aValue : string); procedure TChromium.SetProxyByPassList(const aValue : ustring);
begin begin
if (FProxyByPassList <> aValue) then if (FProxyByPassList <> aValue) then
begin begin
@ -1931,7 +1972,7 @@ begin
end; end;
end; end;
procedure TChromium.SetCustomHeaderName(const aValue : string); procedure TChromium.SetCustomHeaderName(const aValue : ustring);
begin begin
if (FCustomHeaderName <> aValue) then if (FCustomHeaderName <> aValue) then
begin begin
@ -1940,7 +1981,7 @@ begin
end; end;
end; end;
procedure TChromium.SetCustomHeaderValue(const aValue : string); procedure TChromium.SetCustomHeaderValue(const aValue : ustring);
begin begin
if (FCustomHeaderValue <> aValue) then if (FCustomHeaderValue <> aValue) then
begin begin
@ -2203,9 +2244,9 @@ begin
hpDefaultPublicAndPrivateInterfaces : hpDefaultPublicAndPrivateInterfaces :
UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'default_public_and_private_interfaces'); UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'default_public_and_private_interfaces');
hpDefaultPublicInterfaceOnly : hpDefaultPublicInterfaceOnly :
UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'default_public_interface_only'); UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'default_public_interface_only');
hpDisableNonProxiedUDP : hpDisableNonProxiedUDP :
UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'disable_non_proxied_udp'); UpdatePreference(aBrowser, 'webrtc.ip_handling_policy', 'disable_non_proxied_udp');
end; end;
@ -2293,7 +2334,7 @@ begin
end; end;
end; end;
function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : string; aValue : boolean) : boolean; function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; aValue : boolean) : boolean;
var var
TempError : ustring; TempError : ustring;
TempValue : ICefValue; TempValue : ICefValue;
@ -2323,7 +2364,7 @@ begin
end; end;
end; end;
function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : string; aValue : integer) : boolean; function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; aValue : integer) : boolean;
var var
TempError : ustring; TempError : ustring;
TempValue : ICefValue; TempValue : ICefValue;
@ -2348,7 +2389,7 @@ begin
end; end;
end; end;
function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : string; const aValue : double) : boolean; function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName : ustring; const aValue : double) : boolean;
var var
TempError : ustring; TempError : ustring;
TempValue : ICefValue; TempValue : ICefValue;
@ -2373,7 +2414,7 @@ begin
end; end;
end; end;
function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName, aValue : string) : boolean; function TChromium.UpdatePreference(const aBrowser: ICefBrowser; const aName, aValue : ustring) : boolean;
var var
TempError : ustring; TempError : ustring;
TempValue : ICefValue; TempValue : ICefValue;
@ -2666,33 +2707,33 @@ begin
assigned(FOnLoadingStateChange); assigned(FOnLoadingStateChange);
end; end;
function TChromium.MustCreateFocusHandler : boolean; function TChromium.MustCreateFocusHandler : boolean;
begin begin
Result := assigned(FOnTakeFocus) or Result := assigned(FOnTakeFocus) or
assigned(FOnSetFocus) or assigned(FOnSetFocus) or
assigned(FOnGotFocus); assigned(FOnGotFocus);
end; end;
function TChromium.MustCreateContextMenuHandler : boolean; function TChromium.MustCreateContextMenuHandler : boolean;
begin begin
Result := assigned(FOnBeforeContextMenu) or Result := assigned(FOnBeforeContextMenu) or
assigned(FOnRunContextMenu) or assigned(FOnRunContextMenu) or
assigned(FOnContextMenuCommand) or assigned(FOnContextMenuCommand) or
assigned(FOnContextMenuDismissed); assigned(FOnContextMenuDismissed);
end; end;
function TChromium.MustCreateDialogHandler : boolean; function TChromium.MustCreateDialogHandler : boolean;
begin begin
Result := assigned(FOnFileDialog); Result := assigned(FOnFileDialog);
end; end;
function TChromium.MustCreateKeyboardHandler : boolean; function TChromium.MustCreateKeyboardHandler : boolean;
begin begin
Result := assigned(FOnPreKeyEvent) or Result := assigned(FOnPreKeyEvent) or
assigned(FOnKeyEvent); assigned(FOnKeyEvent);
end; end;
function TChromium.MustCreateDisplayHandler : boolean; function TChromium.MustCreateDisplayHandler : boolean;
begin begin
Result := assigned(FOnAddressChange) or Result := assigned(FOnAddressChange) or
assigned(FOnTitleChange) or assigned(FOnTitleChange) or
@ -2704,31 +2745,31 @@ begin
assigned(FOnAutoResize) or assigned(FOnAutoResize) or
assigned(FOnLoadingProgressChange); assigned(FOnLoadingProgressChange);
end; end;
function TChromium.MustCreateDownloadHandler : boolean; function TChromium.MustCreateDownloadHandler : boolean;
begin begin
Result := assigned(FOnBeforeDownload) or Result := assigned(FOnBeforeDownload) or
assigned(FOnDownloadUpdated); assigned(FOnDownloadUpdated);
end; end;
function TChromium.MustCreateJsDialogHandler : boolean; function TChromium.MustCreateJsDialogHandler : boolean;
begin begin
Result := assigned(FOnJsdialog) or Result := assigned(FOnJsdialog) or
assigned(FOnBeforeUnloadDialog) or assigned(FOnBeforeUnloadDialog) or
assigned(FOnResetDialogState) or assigned(FOnResetDialogState) or
assigned(FOnDialogClosed); assigned(FOnDialogClosed);
end; end;
function TChromium.MustCreateDragHandler : boolean; function TChromium.MustCreateDragHandler : boolean;
begin begin
Result := assigned(FOnDragEnter) or Result := assigned(FOnDragEnter) or
assigned(FOnDraggableRegionsChanged); assigned(FOnDraggableRegionsChanged);
end; end;
function TChromium.MustCreateFindHandler : boolean; function TChromium.MustCreateFindHandler : boolean;
begin begin
Result := assigned(FOnFindResult); Result := assigned(FOnFindResult);
end; end;
procedure TChromium.PrefsAvailableMsg(var aMessage : TMessage); procedure TChromium.PrefsAvailableMsg(var aMessage : TMessage);
begin begin
@ -2740,7 +2781,7 @@ begin
Result := (FCompHandle <> 0) and PostMessage(FCompHandle, aMsg, wParam, lParam); Result := (FCompHandle <> 0) and PostMessage(FCompHandle, aMsg, wParam, lParam);
end; end;
procedure TChromium.doTextResultAvailable(const aText : string); procedure TChromium.doTextResultAvailable(const aText : ustring);
begin begin
if assigned(FOnTextResultAvailable) then FOnTextResultAvailable(self, aText); if assigned(FOnTextResultAvailable) then FOnTextResultAvailable(self, aText);
end; end;
@ -2861,6 +2902,7 @@ begin
end; end;
end; end;
{$IFNDEF FPC}
procedure TChromium.BrowserCompWndProc(var aMessage: TMessage); procedure TChromium.BrowserCompWndProc(var aMessage: TMessage);
var var
TempHandled : boolean; TempHandled : boolean;
@ -2932,6 +2974,7 @@ begin
if CustomExceptionHandler('TChromium.RenderCompWndProc', e) then raise; if CustomExceptionHandler('TChromium.RenderCompWndProc', e) then raise;
end; end;
end; end;
{$ENDIF}
function TChromium.doOnClose(const browser: ICefBrowser): Boolean; function TChromium.doOnClose(const browser: ICefBrowser): Boolean;
begin begin
@ -3448,6 +3491,7 @@ begin
if (FWidgetCompHWND <> 0) then if (FWidgetCompHWND <> 0) then
FRenderCompHWND := FindWindowEx(FWidgetCompHWND, 0, 'Chrome_RenderWidgetHostHWND', 'Chrome Legacy Window'); FRenderCompHWND := FindWindowEx(FWidgetCompHWND, 0, 'Chrome_RenderWidgetHostHWND', 'Chrome Legacy Window');
{$IFNDEF FPC}
if assigned(FOnBrowserCompMsg) and (FBrowserCompHWND <> 0) and (FOldBrowserCompWndPrc = nil) then if assigned(FOnBrowserCompMsg) and (FBrowserCompHWND <> 0) and (FOldBrowserCompWndPrc = nil) then
begin begin
CreateStub(BrowserCompWndProc, FBrowserCompStub); CreateStub(BrowserCompWndProc, FBrowserCompStub);
@ -3471,6 +3515,7 @@ begin
GWL_WNDPROC, GWL_WNDPROC,
NativeInt(FRenderCompStub))); NativeInt(FRenderCompStub)));
end; end;
{$ENDIF}
end; end;
if Assigned(FOnRenderViewReady) then FOnRenderViewReady(Self, browser); if Assigned(FOnRenderViewReady) then FOnRenderViewReady(Self, browser);
@ -3557,7 +3602,7 @@ function TChromium.doOnStartDragging(const browser : ICefBrowser;
y : Integer): Boolean; y : Integer): Boolean;
begin begin
Result := False; Result := False;
{$IFNDEF FPC}
if FDragAndDropInitialized and if FDragAndDropInitialized and
FDragDropManager.CloneDragData(dragData, allowedOps) then FDragDropManager.CloneDragData(dragData, allowedOps) then
begin begin
@ -3566,6 +3611,7 @@ begin
end; end;
if Assigned(FOnStartDragging) then FOnStartDragging(Self, browser, dragData, allowedOps, x, y, Result); if Assigned(FOnStartDragging) then FOnStartDragging(Self, browser, dragData, allowedOps, x, y, Result);
{$ENDIF}
end; end;
procedure TChromium.DelayedDragging; procedure TChromium.DelayedDragging;
@ -3573,6 +3619,7 @@ var
TempOperation : TCefDragOperation; TempOperation : TCefDragOperation;
TempPoint : TPoint; TempPoint : TPoint;
begin begin
{$IFNDEF FPC}
if FDragAndDropInitialized and (FDropTargetCtrl <> nil) and (GlobalCEFApp <> nil) then if FDragAndDropInitialized and (FDropTargetCtrl <> nil) and (GlobalCEFApp <> nil) then
begin begin
FDragOperations := DRAG_OPERATION_NONE; FDragOperations := DRAG_OPERATION_NONE;
@ -3586,6 +3633,7 @@ begin
DragSourceEndedAt(TempPoint.x, TempPoint.y, TempOperation); DragSourceEndedAt(TempPoint.x, TempPoint.y, TempOperation);
DragSourceSystemDragEnded; DragSourceSystemDragEnded;
end; end;
{$ENDIF}
end; end;
procedure TChromium.doOnStatusMessage(const browser: ICefBrowser; const value: ustring); procedure TChromium.doOnStatusMessage(const browser: ICefBrowser; const value: ustring);
@ -3832,4 +3880,12 @@ begin
if Initialized then FBrowser.Host.DragSourceSystemDragEnded; if Initialized then FBrowser.Host.DragSourceSystemDragEnded;
end; end;
{$IFDEF FPC}
procedure Register;
begin
{$I tchromium.lrs}
RegisterComponents('Chromium', [TChromium]);
end;
{$ENDIF}
end. end.

View File

@ -10,7 +10,7 @@
// For more information about CEF4Delphi visit : // For more information about CEF4Delphi visit :
// https://www.briskbard.com/index.php?lang=en&pageid=cef // https://www.briskbard.com/index.php?lang=en&pageid=cef
// //
// Copyright © 2018 Salvador Díaz Fau. All rights reserved. // Copyright © 2018 Salvador Diaz Fau. All rights reserved.
// //
// ************************************************************************ // ************************************************************************
// ************ vvvv Original license and comments below vvvv ************* // ************ vvvv Original license and comments below vvvv *************
@ -37,6 +37,10 @@
unit uCEFChromiumEvents; unit uCEFChromiumEvents;
{$IFDEF FPC}
{$MODE OBJFPC}{$H+}
{$ENDIF}
{$IFNDEF CPUX64} {$IFNDEF CPUX64}
{$ALIGN ON} {$ALIGN ON}
{$MINENUMSIZE 4} {$MINENUMSIZE 4}
@ -153,7 +157,7 @@ type
TOnFindResult = procedure(Sender: TObject; const browser: ICefBrowser; identifier, count: Integer; const selectionRect: PCefRect; activeMatchOrdinal: Integer; finalUpdate: Boolean) of Object; TOnFindResult = procedure(Sender: TObject; const browser: ICefBrowser; identifier, count: Integer; const selectionRect: PCefRect; activeMatchOrdinal: Integer; finalUpdate: Boolean) of Object;
// Custom // Custom
TOnTextResultAvailableEvent = procedure(Sender: TObject; const aText : string) of object; TOnTextResultAvailableEvent = procedure(Sender: TObject; const aText : ustring) of object;
TOnPdfPrintFinishedEvent = procedure(Sender: TObject; aResultOK : boolean) of object; TOnPdfPrintFinishedEvent = procedure(Sender: TObject; aResultOK : boolean) of object;
TOnPrefsAvailableEvent = procedure(Sender: TObject; aResultOK : boolean) of object; TOnPrefsAvailableEvent = procedure(Sender: TObject; aResultOK : boolean) of object;
TOnCookiesDeletedEvent = procedure(Sender: TObject; numDeleted : integer) of object; TOnCookiesDeletedEvent = procedure(Sender: TObject; numDeleted : integer) of object;

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