WebView2 Runtime: For full API compatibility, this version of the WebView2 SDK requires WebView2 Runtime version 115.0.1901.177 or higher. Release notes:
Delivering the Microsoft Edge WebView2 Runtime to Windows 10 Consumers:
Microsoft: We're bringing Edge WebView2 to more Windows 10 devices, and here's why:
The Managing SmartScreen API
Edge SmartScreen (https://support.microsoft.com/en-us/microsoft-edge/how-can-smartscreen-help-protect-me-in-microsoft-edge-1c9a874a-6826-be5e-45b1-67fa445a74c8) helps end users identify reported phishing and malware websites, and also helps end users make informed decisions about downloads.
The IsReputationCheckingRequired property controls whether SmartScreen is enabled.
NEW: IsReputationCheckingRequired property determines whether SmartScreen is enabled when visiting web pages.
NEW: "Enable SmartScreen" template prompt.
The SharedBuffer API
For some advanced scenarios, there is a need to exchange large amounts of data between the WebView2 application process and trusted web pages that are considered as part of the app. Some examples:
Web page generates a large amount of data, and passes it to the native side to be further processed or fed to other parts of the app or OS. For example, the web page generates 100MBs of high DPI images to be printed and needs to pass that to the native code to print.
Native side generates a large amount of data for the web side to consume. The data might or might not come directly from files. For example the native side has generated terabytes of data to produce different graphs on the web side.
To support these scenarios, we added SharedBuffer API to support sharing buffers between the WebView2 host app process and WebView2 renderer process, based on shared memory from the OS.
The application code can use the APIs to create a shared buffer object, and share to scripts as ArrayBuffer object. Then both the native application code and the script will be able to access the same memory.
NEW: TSharedBuffer class that allows to create shared buffer, send and receive data to/from a script.
NEW: TClaEdgeBase.PostBinaryData and TClaEdgeBase.FramePostBinaryData methods which post binary data to a script (implicit shared buffers).
NEW: PostBinaryData and ReadBinaryData examples.
Tracking Prevention API
The API to control levels of tracking prevention and also to turn off tracking prevention feature (https://github.com/MicrosoftEdge/WebView2Feedback/blob/main/specs/TrackingPrevention.md).
NEW: PreferredTrackingPreventionLevel property allows you to control levels of tracking prevention for WebView2 which are associated with a profile and persisted in the user data folder.
NEW: EnableTrackingPrevention property is used to enable/disable tracking prevention feature.
Permission Management API
With the extended OnPermissionRequested and OnFramePermissionRequested events args and new permission APIs you will be able to:
Set permission for a site at any time
List all nondefault permissions
Control more permission kinds
NEW: SavesInProfile argument in OnPermissionRequested and OnFramePermissionRequested events lets you turn off the caching of permission state so that you can intercept all permission requests.
NEW: TClaEdgeProfile.SetPermissionState method sets permission state for the given permission kind and origin.
NEW: TClaEdgeProfile.GetNonDefaultPermissionSettings method requests for a collection of all nondefault permission settings.
NEW: OnNonDefaultPermissionSettings event returns a collection of all nondefault permission settings as a json string.
NEW: PermissionKind.MidiSystemExclusiveMessages equate indicates permission to send and receive system exclusive messages to/from MIDI (Musical Instrument Digital Interface) devices.
NEW: PermissionKind.WindowManagement equate indicates permission to open and place windows on the screen.
OnLaunchingExternalUriScheme is the event that will be raised when an attempt to launch a URI scheme that is registered with the OS (external URI scheme) is made. When navigating to a URI, the URI scheme determines how to handle the URI. Some schemes like http, and https, are resolved by the WebView2 and the navigation is handled in the WebView2. Other URI schemes may be registered externally to the WebView2 with the OS by other applications. Such schemes are handled by launching the external URI scheme (https://github.com/MicrosoftEdge/WebView2Feedback/blob/main/specs/LaunchingExternalUriScheme.md).
Registering an Application to a URI Scheme: https://learn.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa767914(v=vs.85)?redirectedfrom=MSDN
NEW: OnLaunchingExternalUriScheme event is raised when there's an attempt to launch a URI scheme that is registered with the OS (external URI scheme).
NEW: "Launch external scheme" example.
Memory usage API
Some Easy Edge apps want to continue to run scripts while inactive and therefore cannot make usage of TrySuspend and Resume APIs to reduce resource consumption. We are introducing an API to reduce memory usage only for this type of inactive WebViews.
NEW: MemoryUsageTargetLevel property allows specifying memory consumption levels, such as low or normal.
CHG: AddScriptToExecuteOnCreate now accepts scriptId parameter that may be passed when calling RemoveScriptToExecuteOnCreate.
Host objects API
The File API allows accessing a DOM File object passed via WebMessage.
Representation of a DOM File (https://developer.mozilla.org/docs/Web/API/File) object passed via WebMessage.
You can use this object to obtain the path of a File dropped on the control.
CHG: OnWebMessageStringReceived and OnWebMessageJsonReceived events have pAdditionalObjectsCount arg which gets the number of additional objects.
NEW: GetAdditionalObjectProp method returns a property of the object.
NEW: TClaEdgeProfile.GetCookieManager property enables the host app to get the cookie manager for the profile.
NEW: TClaEdgeProfile.IsGeneralAutofillEnabled property determines whether general form information will be saved and autofilled.
NEW: TClaEdgeProfile.IsPasswordAutosaveEnabled property determines whether password information will be autosaved.
NEW: The ServiceWorkers enum value in the BrowsingDataKinds enum specifies service workers that are registered for an origin.
NEW: In OnNavigationStarting event NavigationKind argument gets the navigation kind of each navigation, such as Back/Forward, Reload, or navigation to a new document.
FIX: (C6.3 templates) Syntax error in an embed point identifier (EasyEdgeChromiumG.tpw). Check the embed tree to orphaned embeds "Init method body|Data" and "Init method body|Code".
CHG: Removed conditional linking of win32ext.lib for C8 only in DLL mode. If you use C8 in DLL mode, link win32ext.lib manually. The same is true for some of C6.3 versions regardless of linking mode.
This release is available, free of charge, to all customers who have an active maintenance and support subscription plan.