Edge/Chromium alternative to embedded Internet Explorer control?

2,183 views
Skip to first unread message

robert.w...@modeldesign.com

unread,
Feb 9, 2022, 9:31:18 PM2/9/22
to VAST Community Forum
My client has an old but crucial VASt application that opens hundreds of internal web pages in embedded IE controls. The OLE class generator was used to create a subclass of OleControlView usable in Composition Editor. The generated class calls the Windows Navigate2 function, passing it an HTML file.

With IE scheduled for decommission in June, I'm looking for a way to use the Edge browser. Some options:
  • Open all pages in standalone Edge using ShellExecute. Not a good option, as the users would kill me, just a last-ditch workaround to keep things running temporarily.
  • Find some way to use WebView2 to embed an Edge control. But I'm not much of a C++ programmer, and don't know if it's even possible to integrate WebView2 into VASt.
  • Bite the bullet and rewrite the application as thin client in Seaside. That would be a major effort, and the client doesn't want to invest further in this application. They see Smalltalk as obsolete, and this IE issue tends to confirm that view.
Has anyone done this, or have other suggestions? My client can't be the only ones dependent on this OLE control. Any ideas greatly appreciated.

Thanks!
Bob

Seth Berman

unread,
Feb 10, 2022, 4:22:41 PM2/10/22
to VAST Community Forum

Hi Bob,

Thanks for taking the time to write this post.

WebView2 integration for VAST is the best path forward. There is also a commercial ActiveX component, named WebKitX, that could be used. WebView2 is certainly the better option though.

For further context about this feature's inclusion in VAST:

We've been aware of this upcoming IE and OLE issue and have considered including a solution in past releases, but we found that less than 1% of our customer-base have voiced a need for this feature. Understandably, we needed to prioritize other updates and fixes that apply to more of our customers. That said, we know it needs to be addressed eventually, so we're considering adding WebView2 support to the roadmap for VAST 2023.

There's also the option of fast-tracking less demanded features and guaranteeing their inclusion into future releases through a custom development project. We've had many customers engage with us over the years to fund projects, and this funding allows our team to grow temporarily to expedite a feature. Please reach out to sa...@instantiations.com if this might be an option.

***

I did want to touch on the concern of Smalltalk being "obsolete" though.

I know you're aware of our thoughts on this, Bob, but for the benefit of others who will read this post, I'll mention some things:

Smalltalk is a mature programming language. Maturity is a positive thing and does not mean obsolete. Obsolescence is not caused solely by time passing or a language being "old", but instead due to a lack of modern features.

With the VAST Platform (VA Smalltalk), modern features are constantly being added. Support for ARM processors, Unicode support that's more feature-rich and user-friendly than what the majority of other languages have, and even advanced asynchronous programming functionality are already included in VAST or coming soon. Reviewing our version history really shows the accelerating progress and continuing advances we're making on VAST.

Does VAST have some obsolete features or gaps in functionality? Do other mature languages like Java, Python, etc. deal with gaps too?

Yes, we all absolutely do.

But, it would be a stretch to claim that an entire language is obsolete because a small group of features (or libraries) are missing. I wouldn't be able to find a programming language (new or old) that doesn't have some gaps where users are forced to update outdated areas.

To be clear: Large, mission-critical systems require some level of continued investment to keep them running. After all, these systems can't stand still because the information technology around them is constantly evolving…so of course, these systems must evolve too.

Regards,

Seth

Louis LaBrunda

unread,
Feb 10, 2022, 7:35:45 PM2/10/22
to VAST Community Forum
Hi Bob and Seth,

Do we know much about calling Edge/Chromium to create a PDF from HTML that includes CSS data?  Hopefully without creating a file and pointing to it.

Lou

robert.w...@modeldesign.com

unread,
Feb 10, 2022, 8:03:22 PM2/10/22
to VAST Community Forum
Hi Seth,

Thanks very much for your helpful suggestions.

I regret mentioning the obsolete viewpoint, it's certainly not my own. It sounded snarky and I didn't mean it that way. Support for an ActiveX control is a tiny thing compared to everything else VAST does, but unfortunately the visible one to my client. I posted here instead of contacting support because I wouldn't expect Instantiations to necessarily have a fix for something like this, your time is better spent elsewhere.

I'm very impressed with everything Instantiations has done in the past few years. The stability and speed of VAST makes it an incredibly capable and professional tool.

Unfortunately other technologies have a major initiative at my client, so I'm standing back while that train passes, just trying to keep users happy.

Thanks for your help,
Bob
On Thursday, February 10, 2022 at 4:22:41 PM UTC-5 Seth Berman wrote:

Seth Berman

unread,
Feb 11, 2022, 1:42:17 PM2/11/22
to VAST Community Forum

Hi Bob,

No worries.  We appreciate these comments because they give us a great opportunity to share our perspective and provide some important context.

There are many companies out there that love Smalltalk. There are also companies that pushback on Smalltalk usage even though it's a critical part of their systems. The truth is that companies pushback on all types of technology choices, so it's not only Smalltalk that's affected. 

With all that said, Instantiations continues to demonstrate the advantages of VAST which have helped us grow our customer base by about 10% in the past year.

Have a good weekend!

Regards,

Seth

For current customers reading this post, we'd love to hear if 'WebView2' is at the top of your priority list by sending a quick email to our support team at vast-s...@instantiations.com. This will give us a record of the request that we'll use when determining features for upcoming releases.

Douglas Swartz

unread,
Feb 12, 2022, 1:20:20 AM2/12/22
to Joachim Tuchel
Hi Bob,

Have you looked at the Chromium Embed Framework?  https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage.md

It exports a C API and might be suitable for VAST integration. I worked with a guy who used it from Java and thought it is pretty good. 


Doug Swartz

--
You received this message because you are subscribed to the Google Groups "VAST Community Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to va-smalltalk...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/va-smalltalk/ab53763f-9176-4b8a-b3d1-e1643a2f75f1n%40googlegroups.com.

Seth Berman

unread,
Feb 13, 2022, 1:21:49 PM2/13/22
to VAST Community Forum
Hi All,

I downloaded and tried out AntView activex control for Microsoft Edge and it seems to be working just fine.
The webView2 widget wrapper was generated using the VAST OLE generate tool.
An application that includes the generated ole widget and a small example is attached.
Hope some of you find this helpful.

1. Download and install AntView at https://antview.dev/downloads/
2. Register ocx (picl the right folder for 32 or 64-bit)
        C:\Program Files (x86)\AntView\Win64> Regsvr32 /s AntView.ocx
3. Load VA: OLE Support Feature
4. Load config map ENVY/Image Examples
5. Load config map ENVY/Image OLE Examples
4. Import attached application WebView2OleExample
5. OlexWebView2Example new open

This should open a webView2 on instantiations.com

VastWebView2.png

- Seth
WebView2OleExample.zip

Doug Stewart

unread,
Feb 13, 2022, 7:49:28 PM2/13/22
to VAST Community Forum
Hi Seth,

Thank you so much for providing this example. Not sure why AntView never came up in my searches but it is a welcome site. I tried the example you provided and it works as advertised. Again, thank you for taking the time, very much appreciated.

Doug Stewart

robert.w...@modeldesign.com

unread,
Feb 14, 2022, 9:33:25 AM2/14/22
to VAST Community Forum
Seth,

Let me second Doug's thanks for referring us to the AntView package, which I hadn't heard of either.

I haven't tried it yet, but this looks like a good solution, and I greatly appreciate your quick work in providing an example!

Bob

Seth Berman

unread,
Feb 14, 2022, 3:03:06 PM2/14/22
to VAST Community Forum
Hello Bob and Doug,

I'm pleased to hear this and I hope it does work out as a viable solution for your respective products.
Thank you for following up as I'm sure there are others who will be interested in this, as well.

Kind Regards,

- Seth

robert.w...@modeldesign.com

unread,
Mar 15, 2022, 4:38:47 PM3/15/22
to VAST Community Forum
Thanks again, Seth, for going above and beyond in helping with this issue, and pointing us to AntView. Their WebView2 control works very well, and their developer was helpful in tracking down a problem that, um, appears to be in our code.

Smalltalk may not have the huge developer community of some other languages, but its productivity is unmatched, as is the support by Instantiations.

Thanks again,
Bob

Seth Berman

unread,
Mar 17, 2022, 3:02:06 PM3/17/22
to VAST Community Forum
Greetings Bob,

You are very welcome and thank you for the kind words.  I'm glad to hear that AntView is working out and will help you meet your requirement.

After this post, we received additional interest in developing a native edge-based web view for VAST that we would officially support. One of my engineers was able to quickly pull together an impressive proof of concept, and based on that research we have a good feeling of the level-of-effort involved. 

For others reading this post who'd also like a native approach to web view, please let us know through email (vast-s...@instantiations.com) or our website's contact page

- Seth

Sudhakar Y

unread,
Mar 23, 2022, 3:21:47 PM3/23/22
to VAST Community Forum
Hi Bob,

While importing  WebView2OleExample, getting compiler error 'Invalid character sequence'. I'm using V9.1.

Thanks,
Sudhakar

Sudhakar Y

unread,
Mar 23, 2022, 3:25:11 PM3/23/22
to VAST Community Forum
Adding to the conversation, Microsoft released a patch to include IE com objects to core level. So IE can launch  through application using COM objects even IE is disabled on OS ( even IE Is disabled  (Microsoft planning after June 22). 

Thanks

robert.w...@modeldesign.com

unread,
Mar 24, 2022, 9:45:51 AM3/24/22
to VAST Community Forum
> While importing  WebView2OleExample, getting compiler error 'Invalid character sequence'. I'm using V9.1.
Sorry Sudhakar, I don't know what that issue is, Seth's example worked fine for me. My client uses Composition Editor, all I had to do was install the AntView control and then use the OLE generator to create a class wrapping it.

> Microsoft released a patch to include IE com objects to core level. So IE can launch  through application using COM objects even IE is disabled on OS
I figured this would happen, as removing it will probably break many old Visual Basic applications that embed the control. Do you have a link to this patch?

Thanks,
Bob

Sudhakar Y

unread,
Mar 31, 2022, 10:03:14 AM3/31/22
to VAST Community Forum

Doug Stewart

unread,
Oct 13, 2022, 7:21:45 PM10/13/22
to VAST Community Forum
Finally returned to this effort and am having a bit of a problem with Synchronous calls to the document object.

When I do an asynchronous call, the events are triggered and I capture the JSON response without any difficulty.

Example:

                | oleDoc |

                oleDoc := AntviewDocumentWrapper createObjectWithEvents.
                " Browser holds the AntiviewView ole object "
                oleDoc browserDispatch: self Browser iDispatchPointer.
                oleDoc requestElementValueById: 'myId'.
                " Capture JSON result in triggered event method AntivewDocumentWrapper>>handleOnRequestElementValueById:value:error: "

However, when I try a synchronous call, I'm unsure how to provide the "value" parameter. My guess is that this needs to be a pre-allocated OSVariant of some sort. Sadly, I don't know how to work with variants. Looks like there is a way to initialize these correctly and then turn them back into Smalltalk objects but examples are scarce and undocumented. VB6 apparently does this automatically.

                | oleDoc value |

                oleDoc := PimAntviewDocumentWrapper createObjectWithEvents.
                doc browserDispatch: self Browser iDispatchPointer.
                doc
                                requestElementValueByIdSync: 'myId'
                                value: (value := String new). " <-- how to specify this variable/space and convert to Smalltalk object (string in this case)? "

So, if anyone has figured this out, please share your solution.

Thanks

Greg Schultz

unread,
Oct 18, 2022, 4:54:21 PM10/18/22
to va-sma...@googlegroups.com
Hi Doug,

Perhaps some community members can jump in here and assist you in interfacing with the AntView software. While Seth suggested AntView as a solution that may work well for some folks, the best solution is still native Edge support with WebView2.

On that note, WebView2 support will be released in a future version of VAST (VAST 2024 or later). However, if anyone has an urgent need for this feature, a custom development project could be initiated to prioritize this for a sooner release.

Greg Schultz

Marketing & Creative Director

 gsch...@instantiations.com
 /gjschultz
 instantiations.com
TwitterLinkedInVAST Community ForumGitHubYouTubepub.dev


Mariano Martinez Peck

unread,
Dec 22, 2022, 4:18:01 PM12/22/22
to va-sma...@googlegroups.com
Hi everyone,

I just read an article that I thought is worth sharing with you. It seems that a future Edge update (as soon as this February) will disable Internet Explorer: 


Kind regards,

 



--

Mariano Martinez Peck

Senior Software Engineer

 mp...@instantiations.com
 @MartinezPeck
 /mariano-martinez-peck
 instantiations.com
Reply all
Reply to author
Forward
0 new messages