TTMSFNCWebBrowser not allowing typing input on Mac OSX

I recently updated my FNC components to the latest version and noticed when compiling an app to Mac OSX with a TTMSFNCWebBrowser component on a form, you cannot type anything into the web browser.

for example, if you browse to google inside the web browser and attempt to type anything into the search text box, nothing happens in the web browser. Seems like there is no keyboard input detected in the component.

is anyone else having this issue? I have compiled a simple app with TTMSFNCWebBrowser component on 2 separate mac computers .. one with Mac OS 10.15.7 and another with 11.1, but on both macs I am unable to type any text inside the web browser.

did something change in the latest update to produce this issue? If so, is there an easy workaround?

another issue I also noticed on a Windows computer. If you attempt to login to youtube inside a TTMSFNCWebBrowser component on an app compiled to Windows, Google says the web browser is not secure and won't allow you to login. Is there a workaround for this?

I can confirm the issue where you cannot type any text inside the TTMSFNCWebBrowser component when compiled to Max OSX in the following:

TMSFNCCoreSetupReg2.6.0.1.zip
TMSFNCCoreSetupReg2.6.0.0.zip
TMSFNCUIPackSetupReg3.5.1.0.zip
TMSFNCUIPackSetupReg3.5.0.0.zip

I uninstalled the above, and had to go back to the following versions to get it working again:

TMSFNCCoreSetupReg2.5.3.1.zip
TMSFNCUIPackSetupReg3.4.0.1.zip

In addition, the TMS Subscription Manager doesn't work anymore for some strange reason?

when I try to login to my account this is the error I get:

image

and here is the call stack:

Hi,

We have fixed the issue with the keyboard handling on macOS. About login in Youtube. This is Google that is taking action to block logins from embedded browsers. Please check the discussion here: WebView2 (WPF) stop working with Google Authentication - githubmemory

Official announcement from Google:

So it's unclear at this time which flow can be used to authenticate and login to Google services via an embedded browser. We'll monitor changes and see if there are alternatives for this issue.

Can you try to rename folder
c:\users\USERNAME\AppData\Local\tmssoftware to
c:\users\USERNAME\AppData\Local\tmssoftware_
and then restart TMS Subscription Manager to see if this helps?

What version of TMS FNC Core & TMS FNC UI Pack have the fixes? Will that be in the next release, or were the latest versions fixes and re-uploaded?

That's unfortunate regarding the Google restrictions for embeded browsers. But, yesterday I figured out a way around it. I will share it below to help anyone in this situation ...

If you change the user agent using the Edge dev tools in your embeded TTMSFNCWebBrowser component to Firefox Windows user agent, you can login to Google.

Here is how:

  1. first, go to the Google login page in your embedded browser within your compiled application. For example, go to youtube login
  2. Next, right-click the embedded browser in your application and select "Inspect". This will bring up the Edge DevTools window
  3. In the DevTools window, click the button in the top right-hand corner (the one that contains the 3 small dots) , and select "More Tools > Network Conditions"
  4. unslelect the "Use browser default" in the "User agent" section and finally select "Firefox -- windows" from the drop-down. The "Chrome -- Android Mobile" option seems to work as well.
  5. finally, login to your youtube account

also, note .. when you close the DevTools window, it automatically goes back to the default user agent setting. So you must keep that DevTools window open while you are logging into Google. After you login, you can close the DevTools window and everything works as normal.

It would be much better If there was a way to programmatically change the user agent for the TMSFNCWebBrowser at design time. But I recall seeing another topic in this forum saying that's not currently possible. Is this something you guys are considering to investigate?

This morning the TMS subscription manager is working again. Guess something was fixed on the other end :grinning:

Hi,

Next release will have these fixes. We will send you an incremental source update in a moment so you can test out the fixes on macOS. Additionally, We are also working on exposing the UserAgent string property. This will also be included in the zip file. You will be able to set the UserAgent via this code:

TMSFNCWebBrowser1.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0';

This will indeed "fix" the issue with the Google restrictions, but please note that this might not be a long term fix or workaround. It's unclear exactly if Google will change the approach, but it seems that this is working so far.