microsoft-ui-xaml
microsoft-ui-xaml copied to clipboard
Webview2: Window blur and focus events always fire when clicking the WebView
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:
- Create basic WinUI3.0 desktop app using WindowsAppSDK 1.4 or newer.
- Edit MainWindow.xaml to contain just a Webview2 control
- Set the control's
Sourceto a valid URL such as https://www.microsoft.com. Alternatively, addMyWebView.NavigateToString("");to yourCoreWebView2Initializedevent handler. - Build and run the application.
- Open the WebView2 Chrome dev tools by right-clicking the WebView control and selecting "Inspect", or with the hotkey
control-shift-i. - In the dev tools script console, paste and run the following script to log
window.blurandwindow.focusevents:window.onblur = function() { console.log("window.onblur"); }; window.onfocus = function() { console.log("window.onfocus"); }; - Click once on the WebView to bring it into focus.
- Observe that the console has logged a focus, a blur, and a focus event.
- 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
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.
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:
- Interacting with WebView2 in AppWindow causes the main window to be focused/activated instead of the AppWindow (#8113), similarity score: 0.76
- After WebView2 changes the window, clicking WebView2 will not activate the new window but the main window (#7335), similarity score: 0.72
- WebView2 triggers KeyboardAccelerator twice when focused (#6231), similarity score: 0.72
Closed similar issues:
- Webview2: Window blur and focus event always firing when clicking a button (#5615), similarity score: 0.96
- Possible bug on webview2. (#5410), similarity score: 0.71
Note: You can give me feedback by thumbs upping or thumbs downing this comment.
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.
What version of WinAppSDK are you using @atom-b ? And does it still happen if you downgrade to older WinAppSDK version?
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).
There's a fix in progress for MicrosoftEdge/WebView2Feedback#4140 which appears to also be fixing this issue.
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 ...
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 Did this get approved for 1.5 servicing? We have MAUI users reporting this issue as well. Thanks!
This fix will be in the next 1.5 servicing release.
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 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 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.
The fix is now also in Version 1.5.4 (1.5.240607001).