January 22, 2020, CEF 79.1.31+gfc9ef34+chromium-79.0.3945.117 / Chromium 79.0.3945.117
CEF now supports the Chromium Network Service which brings a huge number of breaking API changes, please make sure you read #2743 for details if you are upgrading from a version prior to 75.1.x.
Visual C++ 2015 is required, see Notes below for more information
- #3018 WinForms - Load/LoadHtml does nothing when called from Form/Control.OnLoad [@amaitland]
- #3016 API Change - IJavascriptObjectRepository.Register remove isAsync default param [@amaitland]
- #3009 CefSharp.Common.targets - Improve PlatformCheck error message [@amaitland]
- #2997 Dev tools shows up as an MDI window on the desktop [@amaitland]
- #2990 Remove CefSharp.WebBrowserExtensions.RegisterJsObject/RegisterAsyncJsObject [@amaitland]
- #2988 Feature Request - Add StreamResponseFilter [@amaitland]
- #2986 GetVisibleNavigationEntry always returns null [@amaitland]
- #2983 WinForms - Make CefSharp.WinForms.Internals.ControlExtensions.InvokeOnUiThreadIfRequired internal [@amaitland]
- #2973 WPF IME - Fixed last hangul letter being duplicated [@nyjin]
- #2957 Feature Request - Add RequestContext.ClearHttpAuthCredentials [@vwmberry95]
- #2955 Remove IFrame.LoadStringForUrl [@amaitland]
- #2954 Remove CefSettings.EnableNetSecurityExpiration and RequestContextSettings.EnableNetSecurityExpiration [@amaitland]
- #2946 Accessing Request/Response Headers for ReadOnly Request/Response throws NotSupportedException [@amaitland]
- #2932 IFrame.LoadRequest - Add xml doc warning [@amaitland]
- #2918 Remove IAudioHandler [@amaitland]
- #2909 JSB - Pass params to IMethodInterceptor.Intercept [@amaitland]
- #2908 JSB - Pass all params to IBinder.Bind [@amaitland]
- #2891 BrowserSubprocess - Refactor to support .Net Core [@amaitland]
- #2885 WPF - Modify CopyMemory EntryPoint to work with .Net Core [@kpreisser]
- #2873 MethodRunningQueue DeadLock when attempting to Dispose ChromiumWebBrowser [@amaitland]
- #2332 Feature Request - Add Print preview
- #2258 WPF Improve Scrollbar/Scroll Drag Usability [@mol @amaitland]
- #1721 Feature Request - Add IUrlRequest [@davidmi]
- #228 Feature Request - Add WPF TouchScroll/Multitouch Support [@GSonofNun @kkwpsv]
Notes
CefSharprequiresVisual C++ 2015. See #1983 for details. You can bin deploy theVC++dependencies, read theFAQfor more.Chromiumhas removed support forWindows XP,Windows Vista,Windows Server 2003andWindows Server 2008. See https://chrome.googleblog.com/2015/11/updates-to-chrome-platform-support.html- Starting in June 2019 Google will require OAuth authentication when accessing web services that rely only Google Account Data, this includes Gmail, Drive, Docs, see https://security.googleblog.com/2019/04/better-protection-against-man-in-middle.html?m=1 for further discussion see https://groups.google.com/a/chromium.org/d/msg/embedder-dev/STyM5ZNTHMM/POj1v_cqBgAJ
- Due to licensing issues default builds do not support proprietary codecs like
H264/AAC, sites likeNetflix/Twitter/Instagram/Facebookwon't play video/audio. See #1479 for more info.MP3audio is supported. - Anyone new to
CefSharpshould read the General Usage Guide - This project uses
GitLinkfor better debugging, you can step directly into much of the project source directly fromVisual Studiosee #1680 for details on how to enableGitLink WPFnow has touch support which is enabled by default. Support for Stylus is not enabled by default, see #228 (comment) for further details- CEF now supports
Print Previewsee #2332 for details on how to enable it - Legacy Javascript binding registered JavaScript objects no longer get lost when navigating to another domain.
- Both the
WPFandOffScreenversions havedisable-gpu-compositingset by default to workaround https://bitbucket.org/chromiumembedded/cef/issues/2833/osr-gpu-consume-cpu-and-may-not-draw and https://bitbucket.org/chromiumembedded/cef/issues/2823/osr-on-a-monitor-at-125x-scale-onpaint
Known Issues
WinFormswhen running onWindows 10 Anniversarypressing certain key combinations freezes the browser see #1822 The issue has been reportedupstream, there are workarounds listed in #1822- Browser goes blank if used in combination with WPF TabControl see #2779
CefSettings.IgnoreCertificateErrorsno longer works, use theignore-certificate-errorscommand line arg as a workaround or alternatively useOnCertificateErrorto selectively allow a certificate and/or display a dialog to your users see https://stackoverflow.com/a/35564187/852806 for an example.- When loading a
WebMfile (or any mimetype that supports range headers) the request is cancelled unexpectedly and the video fails to load see https://bitbucket.org/chromiumembedded/cef/issues/2836/cefstreamreader-createforfile - A work in progress list of
CEFissues that are likely relevant toCefSharpis available at https://gist.github.com/amaitland/aec2d464e6dd75e5f0ff8fa8c9503b3a - See https://github.com/cefsharp/CefSharp/issues?q=is%3Aissue+is%3Aopen+label%3Aknown-issue for other known issues
Breaking Changes
- For
Network Service APIchanges see #2743 - IJavascriptObjectRepository.Register removed isAsync default param, you must now specify the third method param see #3016 for details and example
- CefSharp.WinForms.Internals.ControlExtensions.InvokeOnUiThreadIfRequired is now internal, it was never intended to be part of the public API #2983
- CefSettings.EnableNetSecurityExpiration and RequestContextSettings.EnableNetSecurityExpiration were removed #2954
IFrame.LoadStringForUrlhas been removed asCEFremovedCefFrame::LoadStringsee #2955CefSharp.WebBrowserExtensions.RegisterJsObject/RegisterAsyncJsObjectmethods have been removed, you must now directly register your objects with theIJavascriptObjectRepositorysee #2990 for details and examples for migration.IAudioHandlerhas been removed asCEFnow longer supports this feature #2918 (it's likely to be re-added at some point)IMethodInterceptor.Interceptnow has the paramaters passed to allow for more advanced scenarios see #2909IBinder.Bindnow has all arguments passed instead of justIDictionary/IListto allow for more flexible type conversion see #2908Javascript Bindingmethods are now executed on theThreadPoolinstead of their own dedicated thread, see 2873