From 9012c8c20fb936c05a32a1936afeb4ca1c0fc5b7 Mon Sep 17 00:00:00 2001 From: amaitland <307872+amaitland@users.noreply.github.com> Date: Sat, 31 Jan 2026 14:20:31 +1000 Subject: [PATCH 1/4] appveyor.yml - Update as release branch --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index d2b33a4579..8bf4e50aac 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 144.0.120-CI{build} +version: 144.0.120-RCI{build} clone_depth: 10 From 20fa916073cc76a6af3464275aa25c4d4c77dc6c Mon Sep 17 00:00:00 2001 From: amaitland <307872+amaitland@users.noreply.github.com> Date: Sat, 21 Feb 2026 13:52:16 +1000 Subject: [PATCH 2/4] Upgrade to 144.0.15+g72717cf+chromium-144.0.7559.172 / Chromium 144.0.7559.172 --- .../CefSharp.BrowserSubprocess.Core.netcore.vcxproj | 2 +- .../CefSharp.BrowserSubprocess.Core.vcxproj | 2 +- CefSharp.BrowserSubprocess.Core/Resource.rc | 8 ++++---- .../packages.CefSharp.BrowserSubprocess.Core.config | 2 +- ...es.CefSharp.BrowserSubprocess.Core.netcore.config | 2 +- CefSharp.BrowserSubprocess/app.manifest | 2 +- .../CefSharp.Core.Runtime.netcore.vcxproj | 2 +- CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj | 2 +- CefSharp.Core.Runtime/Resource.rc | 8 ++++---- .../packages.CefSharp.Core.Runtime.config | 2 +- .../packages.CefSharp.Core.Runtime.netcore.config | 2 +- .../CefSharp.OffScreen.Example.csproj | 2 +- .../CefSharp.OffScreen.Example.netcore.csproj | 2 +- CefSharp.OffScreen.Example/app.manifest | 2 +- CefSharp.Test/CefSharp.Test.csproj | 2 +- CefSharp.Test/CefSharp.Test.netcore.csproj | 2 +- .../CefSharp.WinForms.Example.csproj | 2 +- .../CefSharp.WinForms.Example.netcore.csproj | 2 +- CefSharp.WinForms.Example/app.manifest | 2 +- CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj | 2 +- .../CefSharp.Wpf.Example.netcore.csproj | 2 +- CefSharp.Wpf.Example/app.manifest | 2 +- .../CefSharp.Wpf.HwndHost.Example.csproj | 2 +- .../CefSharp.Wpf.HwndHost.Example.netcore.csproj | 2 +- CefSharp.shfbproj | 4 ++-- CefSharp/Properties/AssemblyInfo.cs | 4 ++-- NuGet/CefSharp.Common.app.config.x64.transform | 2 +- NuGet/CefSharp.Common.app.config.x86.transform | 2 +- .../PackageReference/CefSharp.Common.NETCore.targets | 12 ++++++------ UpdateNugetPackages.ps1 | 2 +- build.ps1 | 4 ++-- 31 files changed, 45 insertions(+), 45 deletions(-) diff --git a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj index a79730829d..66aa0c055a 100644 --- a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj +++ b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj index 0404c59c5e..cdea351e79 100644 --- a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj +++ b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/Resource.rc b/CefSharp.BrowserSubprocess.Core/Resource.rc index 8ffa8fdc59..902f6253f0 100644 --- a/CefSharp.BrowserSubprocess.Core/Resource.rc +++ b/CefSharp.BrowserSubprocess.Core/Resource.rc @@ -1,8 +1,8 @@ #pragma code_page(65001) 1 VERSIONINFO - FILEVERSION 144,0,120 - PRODUCTVERSION 144,0,120 + FILEVERSION 144,0,150 + PRODUCTVERSION 144,0,150 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -18,10 +18,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "CefSharp.BrowserSubprocess.Core" - VALUE "FileVersion", "144.0.120" + VALUE "FileVersion", "144.0.150" VALUE "LegalCopyright", "Copyright © 2023 The CefSharp Authors" VALUE "ProductName", "CefSharp" - VALUE "ProductVersion", "144.0.120" + VALUE "ProductVersion", "144.0.150" END END BLOCK "VarFileInfo" diff --git a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config index 79f2d3e81b..462cbc7fae 100644 --- a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config +++ b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config index fbae15502c..4f5d285326 100644 --- a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config +++ b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess/app.manifest b/CefSharp.BrowserSubprocess/app.manifest index 4bd112f5cc..296d4d4e2b 100644 --- a/CefSharp.BrowserSubprocess/app.manifest +++ b/CefSharp.BrowserSubprocess/app.manifest @@ -8,7 +8,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj index ba8b979b3a..a166427d66 100644 --- a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj +++ b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj index 896dd17991..68caf0a8b3 100644 --- a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj +++ b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/Resource.rc b/CefSharp.Core.Runtime/Resource.rc index 16a07b386c..81eb79a0a5 100644 --- a/CefSharp.Core.Runtime/Resource.rc +++ b/CefSharp.Core.Runtime/Resource.rc @@ -1,8 +1,8 @@ #pragma code_page(65001) 1 VERSIONINFO - FILEVERSION 144,0,120 - PRODUCTVERSION 144,0,120 + FILEVERSION 144,0,150 + PRODUCTVERSION 144,0,150 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -18,10 +18,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "CefSharp.Core" - VALUE "FileVersion", "144.0.120" + VALUE "FileVersion", "144.0.150" VALUE "LegalCopyright", "Copyright © 2023 The CefSharp Authors" VALUE "ProductName", "CefSharp" - VALUE "ProductVersion", "144.0.120" + VALUE "ProductVersion", "144.0.150" END END BLOCK "VarFileInfo" diff --git a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config index 79f2d3e81b..462cbc7fae 100644 --- a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config +++ b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config index fbae15502c..4f5d285326 100644 --- a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config +++ b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj index d0d1006975..cce04a747a 100644 --- a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj +++ b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj @@ -23,7 +23,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj index c063d950ad..d092f02b0a 100644 --- a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj +++ b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj @@ -38,7 +38,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.OffScreen.Example/app.manifest b/CefSharp.OffScreen.Example/app.manifest index 2225ec4e89..2b778fc6dd 100644 --- a/CefSharp.OffScreen.Example/app.manifest +++ b/CefSharp.OffScreen.Example/app.manifest @@ -7,7 +7,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Test/CefSharp.Test.csproj b/CefSharp.Test/CefSharp.Test.csproj index 9f1745ee57..51f15bbe86 100644 --- a/CefSharp.Test/CefSharp.Test.csproj +++ b/CefSharp.Test/CefSharp.Test.csproj @@ -36,7 +36,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.Test/CefSharp.Test.netcore.csproj b/CefSharp.Test/CefSharp.Test.netcore.csproj index 3fb9bae349..672f90fca8 100644 --- a/CefSharp.Test/CefSharp.Test.netcore.csproj +++ b/CefSharp.Test/CefSharp.Test.netcore.csproj @@ -35,7 +35,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj index 6490ec5ba5..8323f13541 100644 --- a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj +++ b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj @@ -32,7 +32,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj index e80d3e2bcb..e12a950631 100644 --- a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj +++ b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj @@ -38,7 +38,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/app.manifest b/CefSharp.WinForms.Example/app.manifest index 51f63ead21..0c440181b5 100644 --- a/CefSharp.WinForms.Example/app.manifest +++ b/CefSharp.WinForms.Example/app.manifest @@ -8,7 +8,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj index a5e3549fc7..972dd9b859 100644 --- a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj +++ b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj @@ -31,7 +31,7 @@ - + all diff --git a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj index 600d7194b7..77e920c560 100644 --- a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj +++ b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj @@ -39,7 +39,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.Wpf.Example/app.manifest b/CefSharp.Wpf.Example/app.manifest index 4825ce8e76..189b56d4eb 100644 --- a/CefSharp.Wpf.Example/app.manifest +++ b/CefSharp.Wpf.Example/app.manifest @@ -7,7 +7,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj index 22c818a57a..7a62b2c8a0 100644 --- a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj +++ b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj @@ -28,7 +28,7 @@ - + diff --git a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj index 1553569b7a..b19eeeaf75 100644 --- a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj +++ b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj @@ -40,7 +40,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.shfbproj b/CefSharp.shfbproj index 857dce63ed..bd58ca7e22 100644 --- a/CefSharp.shfbproj +++ b/CefSharp.shfbproj @@ -31,7 +31,7 @@ - 144.0.120 + 144.0.150 2 False C#, Managed C++ @@ -59,7 +59,7 @@ InheritedMembers, InheritedFrameworkMembers, Protected, ProtectedInternalAsProtected, EditorBrowsableNever, NonBrowsable - Version 144.0.120 + Version 144.0.150 https://raw.githubusercontent.com/cefsharp/CefSharp/master/LICENSE Interfaces, enums, structs and classes that make up the core API interface diff --git a/CefSharp/Properties/AssemblyInfo.cs b/CefSharp/Properties/AssemblyInfo.cs index a0df545784..3264edc4bb 100644 --- a/CefSharp/Properties/AssemblyInfo.cs +++ b/CefSharp/Properties/AssemblyInfo.cs @@ -26,8 +26,8 @@ public static class AssemblyInfo public const bool ComVisible = false; public const string AssemblyCompany = "The CefSharp Authors"; public const string AssemblyProduct = "CefSharp"; - public const string AssemblyVersion = "144.0.120"; - public const string AssemblyFileVersion = "144.0.120.0"; + public const string AssemblyVersion = "144.0.150"; + public const string AssemblyFileVersion = "144.0.150.0"; public const string AssemblyCopyright = "Copyright © 2023 The CefSharp Authors"; public const string CefSharpCoreProject = "CefSharp.Core, PublicKey=" + PublicKey; public const string CefSharpBrowserSubprocessProject = "CefSharp.BrowserSubprocess, PublicKey=" + PublicKey; diff --git a/NuGet/CefSharp.Common.app.config.x64.transform b/NuGet/CefSharp.Common.app.config.x64.transform index 4750220210..4fcf640076 100644 --- a/NuGet/CefSharp.Common.app.config.x64.transform +++ b/NuGet/CefSharp.Common.app.config.x64.transform @@ -20,7 +20,7 @@ - + diff --git a/NuGet/CefSharp.Common.app.config.x86.transform b/NuGet/CefSharp.Common.app.config.x86.transform index d88eef1369..2251a072d0 100644 --- a/NuGet/CefSharp.Common.app.config.x86.transform +++ b/NuGet/CefSharp.Common.app.config.x86.transform @@ -20,7 +20,7 @@ - + diff --git a/NuGet/PackageReference/CefSharp.Common.NETCore.targets b/NuGet/PackageReference/CefSharp.Common.NETCore.targets index d6949cc0a0..bb451eccdc 100644 --- a/NuGet/PackageReference/CefSharp.Common.NETCore.targets +++ b/NuGet/PackageReference/CefSharp.Common.NETCore.targets @@ -143,16 +143,16 @@ - - - + + + - - - + + + diff --git a/UpdateNugetPackages.ps1 b/UpdateNugetPackages.ps1 index d09b92a5e5..c3ba2920f4 100644 --- a/UpdateNugetPackages.ps1 +++ b/UpdateNugetPackages.ps1 @@ -3,7 +3,7 @@ param( [Parameter(Position = 1)] - [string] $CefVersion = "144.0.12", + [string] $CefVersion = "144.0.15", [Parameter(Position = 2)] [string] $CefSharpVersion = "" ) diff --git a/build.ps1 b/build.ps1 index 65bfb497a4..a955879f9c 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,9 +5,9 @@ param( [Parameter(Position = 0)] [string] $Target = "vs2022", [Parameter(Position = 1)] - [string] $Version = "144.0.120", + [string] $Version = "144.0.150", [Parameter(Position = 2)] - [string] $AssemblyVersion = "144.0.120", + [string] $AssemblyVersion = "144.0.150", [Parameter(Position = 3)] [ValidateSet("NetFramework", "NetCore")] [string] $TargetFramework = "NetFramework", From e4fb858a0400fa7fe14526ef2a8b386aa9fb5fac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Kov=C3=A1=C4=8D?= <118190208+m-kovac@users.noreply.github.com> Date: Sat, 23 May 2026 07:05:20 +0200 Subject: [PATCH 3/4] Upgrade to v144.0.25+g27ce504+chromium-144.0.7559.250 (#5250) --- .../CefSharp.BrowserSubprocess.Core.netcore.vcxproj | 2 +- .../CefSharp.BrowserSubprocess.Core.vcxproj | 2 +- CefSharp.BrowserSubprocess.Core/Resource.rc | 10 +++++----- .../packages.CefSharp.BrowserSubprocess.Core.config | 2 +- ...es.CefSharp.BrowserSubprocess.Core.netcore.config | 2 +- CefSharp.BrowserSubprocess/app.manifest | 2 +- .../CefSharp.Core.Runtime.netcore.vcxproj | 2 +- CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj | 2 +- CefSharp.Core.Runtime/Resource.rc | 10 +++++----- .../packages.CefSharp.Core.Runtime.config | 2 +- .../packages.CefSharp.Core.Runtime.netcore.config | 2 +- .../CefSharp.OffScreen.Example.csproj | 2 +- .../CefSharp.OffScreen.Example.netcore.csproj | 2 +- CefSharp.OffScreen.Example/app.manifest | 2 +- CefSharp.Test/CefSharp.Test.csproj | 2 +- CefSharp.Test/CefSharp.Test.netcore.csproj | 2 +- .../CefSharp.WinForms.Example.csproj | 2 +- .../CefSharp.WinForms.Example.netcore.csproj | 2 +- CefSharp.WinForms.Example/app.manifest | 2 +- CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj | 2 +- .../CefSharp.Wpf.Example.netcore.csproj | 2 +- CefSharp.Wpf.Example/app.manifest | 2 +- .../CefSharp.Wpf.HwndHost.Example.csproj | 2 +- .../CefSharp.Wpf.HwndHost.Example.netcore.csproj | 2 +- CefSharp.shfbproj | 4 ++-- CefSharp/Properties/AssemblyInfo.cs | 6 +++--- NuGet/CefSharp.Common.app.config.x64.transform | 2 +- NuGet/CefSharp.Common.app.config.x86.transform | 2 +- .../PackageReference/CefSharp.Common.NETCore.targets | 12 ++++++------ UpdateNugetPackages.ps1 | 2 +- build.ps1 | 4 ++-- 31 files changed, 48 insertions(+), 48 deletions(-) diff --git a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj index 66aa0c055a..8f3874cf9a 100644 --- a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj +++ b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.netcore.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj index cdea351e79..f8217dcc5c 100644 --- a/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj +++ b/CefSharp.BrowserSubprocess.Core/CefSharp.BrowserSubprocess.Core.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/Resource.rc b/CefSharp.BrowserSubprocess.Core/Resource.rc index 902f6253f0..59da295808 100644 --- a/CefSharp.BrowserSubprocess.Core/Resource.rc +++ b/CefSharp.BrowserSubprocess.Core/Resource.rc @@ -1,8 +1,8 @@ #pragma code_page(65001) 1 VERSIONINFO - FILEVERSION 144,0,150 - PRODUCTVERSION 144,0,150 + FILEVERSION 144,0,250 + PRODUCTVERSION 144,0,250 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -18,10 +18,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "CefSharp.BrowserSubprocess.Core" - VALUE "FileVersion", "144.0.150" - VALUE "LegalCopyright", "Copyright © 2023 The CefSharp Authors" + VALUE "FileVersion", "144.0.250" + VALUE "LegalCopyright", "Copyright © 2026 The CefSharp Authors" VALUE "ProductName", "CefSharp" - VALUE "ProductVersion", "144.0.150" + VALUE "ProductVersion", "144.0.250" END END BLOCK "VarFileInfo" diff --git a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config index 462cbc7fae..4620155c36 100644 --- a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config +++ b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config index 4f5d285326..8f02d4f238 100644 --- a/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config +++ b/CefSharp.BrowserSubprocess.Core/packages.CefSharp.BrowserSubprocess.Core.netcore.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.BrowserSubprocess/app.manifest b/CefSharp.BrowserSubprocess/app.manifest index 296d4d4e2b..802ed8fbe2 100644 --- a/CefSharp.BrowserSubprocess/app.manifest +++ b/CefSharp.BrowserSubprocess/app.manifest @@ -8,7 +8,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj index a166427d66..99d166060f 100644 --- a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj +++ b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.netcore.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj index 68caf0a8b3..1a0d87346e 100644 --- a/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj +++ b/CefSharp.Core.Runtime/CefSharp.Core.Runtime.vcxproj @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/Resource.rc b/CefSharp.Core.Runtime/Resource.rc index 81eb79a0a5..8efbf384e6 100644 --- a/CefSharp.Core.Runtime/Resource.rc +++ b/CefSharp.Core.Runtime/Resource.rc @@ -1,8 +1,8 @@ #pragma code_page(65001) 1 VERSIONINFO - FILEVERSION 144,0,150 - PRODUCTVERSION 144,0,150 + FILEVERSION 144,0,250 + PRODUCTVERSION 144,0,250 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -18,10 +18,10 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "CefSharp.Core" - VALUE "FileVersion", "144.0.150" - VALUE "LegalCopyright", "Copyright © 2023 The CefSharp Authors" + VALUE "FileVersion", "144.0.250" + VALUE "LegalCopyright", "Copyright © 2026 The CefSharp Authors" VALUE "ProductName", "CefSharp" - VALUE "ProductVersion", "144.0.150" + VALUE "ProductVersion", "144.0.250" END END BLOCK "VarFileInfo" diff --git a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config index 462cbc7fae..4620155c36 100644 --- a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config +++ b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config index 4f5d285326..8f02d4f238 100644 --- a/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config +++ b/CefSharp.Core.Runtime/packages.CefSharp.Core.Runtime.netcore.config @@ -1,6 +1,6 @@  - + diff --git a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj index cce04a747a..8d4607d2de 100644 --- a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj +++ b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.csproj @@ -23,7 +23,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj index d092f02b0a..292666130c 100644 --- a/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj +++ b/CefSharp.OffScreen.Example/CefSharp.OffScreen.Example.netcore.csproj @@ -38,7 +38,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.OffScreen.Example/app.manifest b/CefSharp.OffScreen.Example/app.manifest index 2b778fc6dd..c20c883b0e 100644 --- a/CefSharp.OffScreen.Example/app.manifest +++ b/CefSharp.OffScreen.Example/app.manifest @@ -7,7 +7,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Test/CefSharp.Test.csproj b/CefSharp.Test/CefSharp.Test.csproj index 51f15bbe86..cfe14cd97b 100644 --- a/CefSharp.Test/CefSharp.Test.csproj +++ b/CefSharp.Test/CefSharp.Test.csproj @@ -36,7 +36,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.Test/CefSharp.Test.netcore.csproj b/CefSharp.Test/CefSharp.Test.netcore.csproj index 672f90fca8..fa7e458ca9 100644 --- a/CefSharp.Test/CefSharp.Test.netcore.csproj +++ b/CefSharp.Test/CefSharp.Test.netcore.csproj @@ -35,7 +35,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj index 8323f13541..bc3d54460b 100644 --- a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj +++ b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.csproj @@ -32,7 +32,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj index e12a950631..5513cf07f9 100644 --- a/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj +++ b/CefSharp.WinForms.Example/CefSharp.WinForms.Example.netcore.csproj @@ -38,7 +38,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.WinForms.Example/app.manifest b/CefSharp.WinForms.Example/app.manifest index 0c440181b5..0ce54f9b4d 100644 --- a/CefSharp.WinForms.Example/app.manifest +++ b/CefSharp.WinForms.Example/app.manifest @@ -8,7 +8,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj index 972dd9b859..a0b971981b 100644 --- a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj +++ b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.csproj @@ -31,7 +31,7 @@ - + all diff --git a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj index 77e920c560..d7ed319a3d 100644 --- a/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj +++ b/CefSharp.Wpf.Example/CefSharp.Wpf.Example.netcore.csproj @@ -39,7 +39,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.Wpf.Example/app.manifest b/CefSharp.Wpf.Example/app.manifest index 189b56d4eb..306c8712fa 100644 --- a/CefSharp.Wpf.Example/app.manifest +++ b/CefSharp.Wpf.Example/app.manifest @@ -7,7 +7,7 @@ xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - + diff --git a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj index 7a62b2c8a0..3bfd39ae61 100644 --- a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj +++ b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.csproj @@ -28,7 +28,7 @@ - + diff --git a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj index b19eeeaf75..7745fa4991 100644 --- a/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj +++ b/CefSharp.Wpf.HwndHost.Example/CefSharp.Wpf.HwndHost.Example.netcore.csproj @@ -40,7 +40,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CefSharp.shfbproj b/CefSharp.shfbproj index bd58ca7e22..b684878089 100644 --- a/CefSharp.shfbproj +++ b/CefSharp.shfbproj @@ -31,7 +31,7 @@ - 144.0.150 + 144.0.250 2 False C#, Managed C++ @@ -59,7 +59,7 @@ InheritedMembers, InheritedFrameworkMembers, Protected, ProtectedInternalAsProtected, EditorBrowsableNever, NonBrowsable - Version 144.0.150 + Version 144.0.250 https://raw.githubusercontent.com/cefsharp/CefSharp/master/LICENSE Interfaces, enums, structs and classes that make up the core API interface diff --git a/CefSharp/Properties/AssemblyInfo.cs b/CefSharp/Properties/AssemblyInfo.cs index 3264edc4bb..c6022abb41 100644 --- a/CefSharp/Properties/AssemblyInfo.cs +++ b/CefSharp/Properties/AssemblyInfo.cs @@ -26,9 +26,9 @@ public static class AssemblyInfo public const bool ComVisible = false; public const string AssemblyCompany = "The CefSharp Authors"; public const string AssemblyProduct = "CefSharp"; - public const string AssemblyVersion = "144.0.150"; - public const string AssemblyFileVersion = "144.0.150.0"; - public const string AssemblyCopyright = "Copyright © 2023 The CefSharp Authors"; + public const string AssemblyVersion = "144.0.250"; + public const string AssemblyFileVersion = "144.0.250.0"; + public const string AssemblyCopyright = "Copyright © 2026 The CefSharp Authors"; public const string CefSharpCoreProject = "CefSharp.Core, PublicKey=" + PublicKey; public const string CefSharpBrowserSubprocessProject = "CefSharp.BrowserSubprocess, PublicKey=" + PublicKey; public const string CefSharpBrowserSubprocessCoreProject = "CefSharp.BrowserSubprocess.Core, PublicKey=" + PublicKey; diff --git a/NuGet/CefSharp.Common.app.config.x64.transform b/NuGet/CefSharp.Common.app.config.x64.transform index 4fcf640076..0585a7667d 100644 --- a/NuGet/CefSharp.Common.app.config.x64.transform +++ b/NuGet/CefSharp.Common.app.config.x64.transform @@ -20,7 +20,7 @@ - + diff --git a/NuGet/CefSharp.Common.app.config.x86.transform b/NuGet/CefSharp.Common.app.config.x86.transform index 2251a072d0..3efb5e75e5 100644 --- a/NuGet/CefSharp.Common.app.config.x86.transform +++ b/NuGet/CefSharp.Common.app.config.x86.transform @@ -20,7 +20,7 @@ - + diff --git a/NuGet/PackageReference/CefSharp.Common.NETCore.targets b/NuGet/PackageReference/CefSharp.Common.NETCore.targets index bb451eccdc..0d38c17247 100644 --- a/NuGet/PackageReference/CefSharp.Common.NETCore.targets +++ b/NuGet/PackageReference/CefSharp.Common.NETCore.targets @@ -143,16 +143,16 @@ - - - + + + - - - + + + diff --git a/UpdateNugetPackages.ps1 b/UpdateNugetPackages.ps1 index c3ba2920f4..9c394239a8 100644 --- a/UpdateNugetPackages.ps1 +++ b/UpdateNugetPackages.ps1 @@ -3,7 +3,7 @@ param( [Parameter(Position = 1)] - [string] $CefVersion = "144.0.15", + [string] $CefVersion = "144.0.25", [Parameter(Position = 2)] [string] $CefSharpVersion = "" ) diff --git a/build.ps1 b/build.ps1 index a955879f9c..3990863c90 100644 --- a/build.ps1 +++ b/build.ps1 @@ -5,9 +5,9 @@ param( [Parameter(Position = 0)] [string] $Target = "vs2022", [Parameter(Position = 1)] - [string] $Version = "144.0.150", + [string] $Version = "144.0.250", [Parameter(Position = 2)] - [string] $AssemblyVersion = "144.0.150", + [string] $AssemblyVersion = "144.0.250", [Parameter(Position = 3)] [ValidateSet("NetFramework", "NetCore")] [string] $TargetFramework = "NetFramework", From 2707cbf4b0c68fff6325810b86359fc2fa0b9b33 Mon Sep 17 00:00:00 2001 From: amaitland <307872+amaitland@users.noreply.github.com> Date: Sat, 23 May 2026 15:38:28 +1000 Subject: [PATCH 4/4] Core - FolderSchemeHandlerFactory improve path check to prevent break out - Prevent accessing resources outside of the root path specified. - Add Test to verify --- .../FolderSchemeHandlerFactoryTests.cs | 67 +++++++++++++++++-- .../FolderSchemeHandlerFactory.cs | 20 ++++-- 2 files changed, 78 insertions(+), 9 deletions(-) diff --git a/CefSharp.Test/SchemeHandler/FolderSchemeHandlerFactoryTests.cs b/CefSharp.Test/SchemeHandler/FolderSchemeHandlerFactoryTests.cs index a75af1fee9..3729e6c733 100644 --- a/CefSharp.Test/SchemeHandler/FolderSchemeHandlerFactoryTests.cs +++ b/CefSharp.Test/SchemeHandler/FolderSchemeHandlerFactoryTests.cs @@ -1,10 +1,11 @@ -using Xunit.Abstractions; -using Xunit; +using System; +using System.IO; using System.Threading.Tasks; -using CefSharp.OffScreen; using CefSharp.Example; +using CefSharp.OffScreen; using CefSharp.SchemeHandler; -using System.IO; +using Xunit; +using Xunit.Abstractions; namespace CefSharp.Test.SchemeHandler { @@ -56,6 +57,64 @@ public async Task ShouldWork() } } + [Fact] + public async Task ShouldPreventPathTraversalAttack() + { + const string hostUrl = "https://folderschemehandlerfactory.test/"; + + // 1. Setup temporary directory structure + var tempParent = Path.Combine(Path.GetTempPath(), "CefSharpShouldPreventPathTraversalAttack-" + Guid.NewGuid()); + var root = Path.Combine(tempParent, "www"); + var sibling = Path.Combine(tempParent, "www2"); + + try + { + Directory.CreateDirectory(root); + Directory.CreateDirectory(sibling); + + File.WriteAllText(Path.Combine(root, "index.html"), "root-index"); + File.WriteAllText(Path.Combine(sibling, "secret.txt"), "sibling-secret"); + + // 2. Initialize the CefSharp context and browser instances + using (var requestContext = new RequestContext(Cef.GetGlobalRequestContext())) + using (var browser = new ChromiumWebBrowser(CefExample.DefaultUrl, requestContext: requestContext, useLegacyRenderHandler: false)) + { + _ = await browser.WaitForInitialLoadAsync(); + + // Register factory targeting our custom root directory + requestContext.RegisterSchemeHandlerFactory( + "https", + "folderschemehandlerfactory.test", + new FolderSchemeHandlerFactory(root, defaultPage: "index.html")); + + // 3. Attempt to break out of 'www' using an escaped path traversal sequence + var traversalUrl = hostUrl + "..%2fwww2/secret.txt"; + var response = await browser.LoadUrlAsync(traversalUrl); + + var mainFrame = browser.GetMainFrame(); + Assert.True(mainFrame.IsValid); + + // 4. Security Assertions: The factory should sanitize the path and return a 404. + // If the code is secure, HttpStatusCode should be 404 (NotFound). + Assert.Equal(404, response.HttpStatusCode); + + // Fetch DOM contents to double-check that the file contents leaked nowhere + var jsResponse = await browser.EvaluateScriptAsync("document.documentElement.innerText"); + var bodyText = jsResponse.Result?.ToString() ?? string.Empty; + + Assert.DoesNotContain("sibling-secret", bodyText); + } + } + finally + { + // 5. Clean up temporary directories and files safely + if (Directory.Exists(tempParent)) + { + Directory.Delete(tempParent, recursive: true); + } + } + } + [Fact] public async Task ShouldAllowFileDeletionAfterLoading() { diff --git a/CefSharp/SchemeHandler/FolderSchemeHandlerFactory.cs b/CefSharp/SchemeHandler/FolderSchemeHandlerFactory.cs index eb8244a54e..ea56a7bbbc 100644 --- a/CefSharp/SchemeHandler/FolderSchemeHandlerFactory.cs +++ b/CefSharp/SchemeHandler/FolderSchemeHandlerFactory.cs @@ -50,6 +50,8 @@ public FolderSchemeHandlerFactory(string rootFolder, string schemeName = null, s { throw new DirectoryNotFoundException(this.rootFolder); } + + this.rootFolder = this.rootFolder.TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar) + Path.DirectorySeparatorChar; } /// @@ -102,14 +104,22 @@ protected virtual IResourceHandler Create(IBrowser browser, IFrame frame, string } //Get the absolute path and remove the leading slash - var asbolutePath = uri.AbsolutePath.Substring(1); + var absolutePath = uri.AbsolutePath.Substring(1); + + if (string.IsNullOrEmpty(absolutePath)) + { + absolutePath = defaultPage; + } + + var decodedPath = WebUtility.UrlDecode(absolutePath); - if (string.IsNullOrEmpty(asbolutePath)) + // Block null bytes and NTFS Alternate Data Streams (:) + if (decodedPath.Contains("\0") || decodedPath.Contains(":")) { - asbolutePath = defaultPage; + return ResourceHandler.ForErrorMessage($"File Not Found - {absolutePath}", HttpStatusCode.NotFound); } - var filePath = Path.GetFullPath(Path.Combine(rootFolder, WebUtility.UrlDecode(asbolutePath))); + var filePath = Path.GetFullPath(Path.Combine(rootFolder, decodedPath)); //Check the file requested is within the specified path and that the file exists if (filePath.StartsWith(rootFolder, StringComparison.OrdinalIgnoreCase) && File.Exists(filePath)) @@ -120,7 +130,7 @@ protected virtual IResourceHandler Create(IBrowser browser, IFrame frame, string return ResourceHandler.FromStream(stream, mimeType, autoDisposeStream: true); } - return ResourceHandler.ForErrorMessage("File Not Found - " + filePath, HttpStatusCode.NotFound); + return ResourceHandler.ForErrorMessage($"File Not Found - {absolutePath}", HttpStatusCode.NotFound); } } }