ANN: Easy Edge (Chromium) ver 1.07 released!

SDK: 1.0.1185.39
WebView2 Runtime: 100.0.1185.39 or higher.
Release notes: https://docs.microsoft.com/en-us/microsoft-edge/webview2/release-notes

FIX: Apps built in Clarion (“Legacy”) template chain threw an exception in OnFrameCreated event.
FIX: “Duplicate symbol: TYPE$BITMAPFILEHEADER” error.
FIX: Template inline comment error in C6.3.
FIX: Missing coinitex.lib for C6.3.
FIX: IsSwipeNavigationEnabled set property didn’t work.

Context menu: Enables host app to create or modify their own context menu
NEW: OnContextMenuRequested event: Raised when a context menu is requested by the user and the content inside WebView hasn’t disabled context menus.
NEW: OnCustomItemSelected event: Raised when the user selects custom context menu item.
NEW: TClaEdgeContextMenu class: Allows an access to context menu properties, adds and removes menu items.
NEW: Custom context menu example.

StatusBar
NEW: OnStatusBarTextChanged event: Raised when the text in the statusbar changes.
NEW: StatusBarText property: The current text of the statusbar.
NEW: Custom statusbar example.

External drop
NEW: AllowExternalDrop property: Enable/disable external drop.

Pdf Toolbar
NEW: HiddenPdfToolbarItems property: Hide/unhide the PDF toolbar items like “Save”, “SaveAs”, “Print”.

iframe
NEW: OnFramePermissionRequested event: Raised when content in an iframe or any of its descendant iframes requests permission to access some privileged resources.

DevTools Protocol
NEW: SetDevToolsProtocolEventReceiver method:
NEW: OnDevToolsProtocolEventReceived event: Raised when the corresponding DevToolsProtocol event is raised.
NEW: CallDevToolsProtocolMethodForSession method: Runs an asynchronous DevToolsProtocol method for a specific session of an attached target.

Environment
NEW: Template: global environment options can now be overridden in local extensions, so every Easy Edge instance may have its own browser data, such as cookies, permissions, and cached resources.

This release is available, free of charge, to all customers who have an active maintenance and support subscription plan.

Easy Edge (Chromium) is a Clarion wrapper around the Microsoft Edge WebView2 control that enables you to embed web technologies (HTML, CSS, and JavaScript) in your Clarion applications easily. The WebView2 control uses Microsoft Edge (Chromium) as the rendering engine to display the web content in native applications. With WebView2, you may embed web code in different parts of your native application, or build the entire native application within a single WebView.

Key features:

  • Full UNICODE support
  • Execute javascript and get a result
  • CKEditor v4 HTML editor template support
  • File system navigation
  • An access to Chrome DevTools Protocol api (DevTools console)
  • Deploying your application - Besides an usual exe, dll etc files you should ship just 4 small DLLs (330Kb) with your end-user application

Easy Edge (Chromium) is implemented as a set of classes available as full source code, template and .NET assemblies. You can freely distribute your application using our DLLs without any additional costs. After your purchase no additional fees are required for distribution.

For use Easy Edge (Chromium) following is needed:

  • Clarion C6.3 or newer, ABC or Legacy.
  • NET: v4.6.2 or newer

You are able to run Easy Edge (Chromium) applications on the following versions of Windows:

  • Windows 11
  • Windows 10
  • Windows 8.1
  • Windows 7 **
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2008 R2 **

** WebView2 support for Windows 7 and Windows Server 2008 R2 has the same support cycle as Microsoft Edge. For more information, navigate to Microsoft Edge supported Operating Systems.

More info and DEMO at
http://www.ingasoftplus.com/ProductDetail.php?ProductID=304

Cost just $175.

Discounted price for EasyHTML clients!!

After your purchase no additional fees are required for distribution.

best regards,
Ingasoftplus

I get this error message when I click on Easy Edge

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Microsoft.Web.WebView2.Clarion
    Assembly Version: 1.0.7.0
    Win32 Version: 1.0.7.0
    CodeBase: file:///C:/Users/Public/Documents/EasyEdgeChromium%20Demo%20ver.1.07/Microsoft.Web.WebView2.Clarion.DLL
----------------------------------------
Microsoft.Web.WebView2.Core
    Assembly Version: 1.0.1185.39
    Win32 Version: 1.0.1185.39
    CodeBase: file:///C:/Users/Public/Documents/EasyEdgeChromium%20Demo%20ver.1.07/Microsoft.Web.WebView2.Core.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.Web.WebView2.WinForms
    Assembly Version: 1.0.1185.39
    Win32 Version: 1.0.1185.39
    CodeBase: file:///C:/Users/Public/Documents/EasyEdgeChromium%20Demo%20ver.1.07/Microsoft.Web.WebView2.WinForms.DLL
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Nothing works in the Web Browser window, ie I can type in www.youtube.com click the recycle button (3rd one), nothing happens, click the close button and I get this.

Exception occurred at address 07EEF75B
Exception code C0000005: Access Violation
Process PID=000031F0  Image: C:\Users\Public\Documents\EasyEdgeChromium Demo ver.1.07\EasyEdgeDemo.exe
Thread 2  Handle=000003BC  TID=00001D70

EAX=07EEF134    EBX=07ECFAE0    ECX=00000000    EDX=1028FD14
ESI=101E5A2C    EDI=1028FD14    EBP=07ECFA94    ESP=07ECFA88
EIP=07EEF75B    FLG=00010246

Call Stack:
07EEF75B
07EEEEA4
07EEEE72
04E3FEB2
009CBCB9
009BA39B
00A8409E
00A83DC4
772E7A7E
772E7A4E

In fact every every menu option below Easy Edge, throws a .net error when going into the window and the Clarion C000005 access violation when trying to close the window.

Any ideas? :grinning:

Edit1

When I click on this link I get this error message in MS Edge:

This server couldn’t prove that it’s www.ingasoftplus.com ; its security certificate is from *.aruba.it . This may be caused by a misconfiguration or an attacker intercepting your connection.

My MS Edge configuration really doesnt like using http:// connections but at least I dont get stuck in a loop like I do on the sv ptss website. :wink:

fwiw.

Edit2

I just tried downloading the WebView2 runtime and the bootstrapper here
WebView2 - Microsoft Edge Developer

tells me its already installed?

In the readme it say:

  • NET: v4.6.2 or newer
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

I’m assuming I’m on 4.8.4?

Could you explain what is “Easy Edge” in this case?

Sorry that should read, Easy Edge, Web Browser.

So you are talking about EasyEdgeDemo.exe, right?

Thats correct. I thought I’d see what the demo does.

I just downloaded the demo, installed it and has no issue: it works pretty well. But I have changed the default folder “C:\Users\Public\Documents\EasyEdgeChromium Demo ver.1.07” to the folder on disk e:.

I think something is wrong with WebView2 Runtime on your machine. Try to uninstall it and ran the demo, then choose Install WebView Runtime.

I dont think there is anything wrong with WebView2 on this machine.

What is this error?

Whats the file trying to access?

Would this be useful?
Manage exceptions with the debugger - Visual Studio (Windows) | Microsoft Docs

I’ve been searching for a util which will test if the WebView2 is installed properly, but I cant find anything, just this.

GitHub - MicrosoftEdge/WebView2Browser: A web browser built with the Microsoft Edge WebView2 control.

Edit:
Would this be useful?
Enhanced Logging in ClickOnce Deployment | RobinDotNet’s Blog (wordpress.com)

And why are you sorting it out and not Ingasoft?

Edit2:

I was just looking up my version of Edge on here
Microsoft Edge release schedule | Microsoft Docs

I’m on Microsoft Edge Version 100.0.1185.50 (Official build) (64-bit)

which doesnt seem to be listed, in that link of Edge versions.

Found it here: Microsoft Edge release notes for Stable Channel | Microsoft Docs

This is all it says about it:

Version 100.0.1185.50: April 21

Fixed various bugs and performance issues for Stable and Extended Stable release.

When you run the demo, it checks for WebView2 Runtime. If the runtime is not installed, or outdated, then the demo allows to install it. If at the same time another program using WebView2 is running, then the demo is not able to reinstall the runtime and you see “Installation failed. The WebView2 Runtime is already installed for the system” message,
This is what I’m guessing.

Well this screen shot says its already installed. WebView2 Runtime is already installed

And this screen shot says it was only installed 2 days ago and is the version matching my version of MS Edge.

And from my post here ANN: Easy Edge (Chromium) ver 1.07 released! - #2 by anon23294430
It looks like I have the latest version of WebView2 installed.

Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C

I havent seen that though and the above Apps & Features screen shot suggests its all ok.

Well I’ve only got a standard Win10 pc thats all up to date, so I dont know what else it could be, I was hoping Ingasoft might know considering they wrote the addon! Its not very easy! :wink:

@Mike_Duglas is an author

So when you run the demo and select say Web browser item you are not offered to install/upgrade WebView2 Runtime, correct? I was confused by your screenshot showing Runtime installation failure.

You select Web browser and get exception dialog saying “System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)”. Check the existance of those files in the demo folder:

WebView2Loader.dll
Microsoft.Web.WebView2.WinForms.dll
Microsoft.Web.WebView2.Core.dll
Microsoft.Web.WebView2.Clarion.dll

Also DebugView log may help.

I didnt know the demo was installed into the Public User’s Document folder, I was looking for it in Program Files (x86), apps cant run from the user’s My Documents folders, its a Ransomware security exploit doing that and thats probably why its failing!

Why doesnt it install in the program files folder, where it should be?

Those dll files are in the Public\My Document’s folder.

This is the debugview output.

[8984] IsWebView2RuntimeInstalled success: installed version 100.0.1185.50, minimal supported version 100.0.1185.39
[8984] WebView2 Warning: Using default User Data Folder is not recommended, please see documentation.  https://go.microsoft.com/fwlink/?linkid=2187341  
[8984] WebView2: CoreWebView2Environment failed to create the user data folder: error=
[8984] The system cannot find the file specified.
[8984]  path=
[8984] C:\Users\Public\Documents\EasyEdgeChromium Demo ver.1.07\EasyEdgeDemo.exe.WebView2
[8984] 
[8984] WebView2 Warning: Using default User Data Folder is not recommended, please see documentation.  https://go.microsoft.com/fwlink/?linkid=2187341  
[8984] WebView2: CoreWebView2Environment failed to create the user data folder: error=
[8984] The system cannot find the file specified.
[8984]  path=
[8984] C:\Users\Public\Documents\EasyEdgeChromium Demo ver.1.07\EasyEdgeDemo.exe.WebView2
[8984] 
[8984] [ClaEdge] Initialization exception Microsoft.Web.WebView2.Core.WebView2RuntimeNotFoundException: Couldn't find a compatible Webview2 Runtime installation to host WebViews. ---> System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002) 
[8984]    --- End of inner exception stack trace --- 
[8984]    at Microsoft.Web.WebView2.Core.CoreWebView2Environment.<CreateAsync>d__3.MoveNext() 
[8984] --- End of stack trace from previous location where exception was thrown --- 
[8984]    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
[8984]    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
[8984]    at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 
[8984]    at Microsoft.Web.WebView2.WinForms.WebView2.<InitCoreWebView2Async>d__18.MoveNext()

Edit:
I can get a webpage up if I allow the ransomware protection to ignore the program, even powershell doesnt get access to some parts of a windows machine.

Protect important folders from ransomware from encrypting your files with controlled folder access | Microsoft Docs

You can even start blocking disk sectors in windows now.
Windows Defender Exploit Guard policy - Configuration Manager | Microsoft Docs

The demo creates user data folder (UDF) inside exe folder (this is default option). Program Files (x86) is write protected folder, so we decided to set default installation folder to User’s Documents. Seems that was not a good idea :slight_smile:

I can see the folder called “EasyEdgeDemo.exe.WebView2” has been created in the public\document folder, but that only works when the ransomware protection is switched off.

I’m a bit edgy about ransomware after reading this Maersk, me & Notpetya - Gavin Ashton (gvnshtn.com)
It cost Maersk upwards of $250million to fix, I dont have that sort of money! :grinning:

The irony is, this ransomware is what Gavin Ashton was supposed to have been protecting against.

It looks like he works for MS as well.
How multi-factor authentication empowers secure hybrid working (microsoft.com)

Its interesting though, running an app from the Public user’s folders, I’ve just been looking at the security and everything has access to it, so I wonder now what can I get an app to do from being installed in one of the public user’s folders, in a reverse setup. Interesting.

Anyway ransomware block is what the problem was.

Richard, thanks for the feedback and sorry for the inconvenience.

This ransomware protection stuff introduces a whole new set of things to check.
Anyway at least we know what the cause is, the online search’s I made for this error, not one mentioned ransomware protection as a possibility!

Solution for

System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)

Answer: Switch off your ransomware protection.

Lets see this thread get hit up by people searching for a solution to this problem, and for those visitors, this is where you go to purchase a new licence for Clarion, the best programming language in the world! Clarion (New licenses) – SoftVelocity :wink: