microsoft-ui-xaml icon indicating copy to clipboard operation
microsoft-ui-xaml copied to clipboard

Webview2: Window blur and focus events always fire when clicking the WebView

Open atom-b opened this issue 1 year ago • 7 comments

Describe the bug

When the WebView2 already has focus, clicking anywhere inside the WebView2 will trigger a window blur event followed immediately by a window focus event. Repeated clicks inside the window will trigger a blur and focus event for each click.

Steps to reproduce the bug

The repro steps in #5615 work, and clicking anywhere within the white test area will reproduce the bug, not just the button.

The bug can also be reproduced on any page, including an empty HTML page:

  1. Create basic WinUI3.0 desktop app using WindowsAppSDK 1.4 or newer.
  2. Edit MainWindow.xaml to contain just a Webview2 control
  3. Set the control's Source to a valid URL such as https://www.microsoft.com. Alternatively, add MyWebView.NavigateToString(""); to your CoreWebView2Initialized event handler.
  4. Build and run the application.
  5. Open the WebView2 Chrome dev tools by right-clicking the WebView control and selecting "Inspect", or with the hotkey control-shift-i.
  6. In the dev tools script console, paste and run the following script to log window.blur and window.focus events: window.onblur = function() { console.log("window.onblur"); }; window.onfocus = function() { console.log("window.onfocus"); };
  7. Click once on the WebView to bring it into focus.
  8. Observe that the console has logged a focus, a blur, and a focus event.
  9. Repeatedly click anywhere in the WebView and observe that the console logs a blur and focus event for each click.

Expected behavior

Window blur and focus events are only fired when the window loses and regains focus, respectively, and only once per triggering event. Window blur and focus events are not fired when clicking inside the WebView that already has focus.

Screenshots

image

NuGet package version

WinUI 3 - Windows App SDK 1.4.4: 1.4.231219000

Windows version

Windows 10 (21H2): Build 19044

Additional context

This is very similar to issue #5615 but a button is not required. The bug will repro on an empty HTML page.

I've repro'd the bug in the first and last stable WindowsAppSDK 1.4 releases (1.4.230822000 and 1.4.231219000), as well as WindowsAppSDK 1.5.240124002-experimental2). This bug does not repro in WIndowsAppSDK 1.3.230724000.

atom-b avatar Jan 26 '24 15:01 atom-b

Hi I'm an AI powered bot that finds similar issues based off the issue title.

Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one. Thank you!

Open similar issues:

Closed similar issues:

Note: You can give me feedback by thumbs upping or thumbs downing this comment.

github-actions[bot] avatar Jan 26 '24 15:01 github-actions[bot]

Hi I'm an AI powered bot that finds similar issues based off the issue title.

... * Webview2: Window blur and focus event always firing when clicking a button (#5615), similarity score: 0.96

Issue #5615 is a very similar bug, and the bug I'm reporting may be a regression that reintroduced #5615, but I cannot confirm this.

atom-b avatar Jan 26 '24 15:01 atom-b

What version of WinAppSDK are you using @atom-b ? And does it still happen if you downgrade to older WinAppSDK version?

koenvd avatar Feb 21 '24 17:02 koenvd

Ah right. I do see your comment now about not happening in 1.3.

Is it somehow possible to get this looked at @codendone because don't think we can upgrade to 1.5 when this issue is not fixed (In our app we track how long a page has focus so the focus event is imported for us).

koenvd avatar Feb 21 '24 17:02 koenvd

There's a fix in progress for MicrosoftEdge/WebView2Feedback#4140 which appears to also be fixing this issue.

codendone avatar Feb 26 '24 21:02 codendone

Thanks!

So we cannot expect a fix before WindowsAppSDK 1.6? (based on comment in the linked ticket https://github.com/MicrosoftEdge/WebView2Feedback/issues/4140#issuecomment-1930921823).

That would mean for us that we would be stuck on 1.3 for a while ...

koenvd avatar Feb 26 '24 21:02 koenvd

Servicing to 1.5 is still a possibility. I tagged the internal bug to ensure it is considered for servicing once the fix is in 1.6 and verified.

codendone avatar Feb 27 '24 03:02 codendone

@codendone Did this get approved for 1.5 servicing? We have MAUI users reporting this issue as well. Thanks!

BethMassi avatar May 30 '24 21:05 BethMassi

This fix will be in the next 1.5 servicing release.

codendone avatar Jun 07 '24 17:06 codendone

There's a fix in progress for MicrosoftEdge/WebView2Feedback#4140 which appears to also be fixing this issue.

@codendone You mentioned that this fix should also be fixing the issue with the flyout in webview2. I tested this with WinAppSDK 1.6 experimental1. However, the issue still seems to persist in 1.6 experimental1 (https://github.com/MicrosoftEdge/WebView2Feedback/issues/4140). Following related issue also still repoproduces under 1.6 experimental: https://github.com/microsoft/microsoft-ui-xaml/issues/5615

Therefore, I just wanted to check, if those bugs get fixed separately? And if so, are there also on track for the 1.6 release?

grabinat avatar Jun 07 '24 17:06 grabinat

@grabinat Interesting. I believe you're talking about #9566. That was supposed to be fixed by the change for this issue. Please add your comment on that issue for us to re-evaluate that one. Thanks!

codendone avatar Jun 07 '24 18:06 codendone

@codendone Oh - I thought it was related to issue because of that comment from this thread: https://github.com/microsoft/microsoft-ui-xaml/issues/9288#issuecomment-1965264582 But no worries, then I will post in the other thread as well.

grabinat avatar Jun 07 '24 18:06 grabinat

The fix is now also in Version 1.5.4 (1.5.240607001).

codendone avatar Jun 12 '24 00:06 codendone