WebView2Feedback icon indicating copy to clipboard operation
WebView2Feedback copied to clipboard

[Problem/Bug]: web messages aren't posted while the system context menu is up

Open pushkin- opened this issue 1 year ago • 3 comments

What happened?

I listen for messages posted to the app in my WebMessageReceived handler.

That handler won't fire while the system context menu is up (Alt+Space)

Even after the context menu is dismissed (like via Escape), it seems like I have to click in the webview2 for the messages to start getting processed.

This is causing my app to effectively hang while the context menu is up since the webapp is waiting on some messages to get processed which never happens.

Importance

Important. My app's user experience is significantly compromised.

Runtime Channel

Stable release (WebView2 Runtime)

Runtime Version

128.0.2739.54

SDK Version

1.0.2535.41

Framework

Winforms

Operating System

Windows 11

OS Version

22631.4037

Repro steps

  1. download the WinForms webview2 sample app from here: https://github.com/MicrosoftEdge/WebView2Samples
  2. in BrowserForm::AttachControlEventHandlers, add: control.WebMessageReceived += Control_WebMessageReceived; where the event handler just does a Debug.WriteLine('") or something.
  3. add this to the end of AppStartPage.js: setTimeout(() => { window.chrome.webview.postMessage("message"); }, 5000);
  4. Start the app
  5. if you wait 5 seconds, the breakpoint in WebMessageReceived will get hit.
  6. If you start the app and hit Alt+Space. The breakpoint won't get hit.
  7. If you then press escape to dismiss the context menu, the breakpoint still won't be hit.
  8. If you then click inside of the webview2 control, the breakpoint gets hit.

Repros in Edge Browser

No, issue does not reproduce in the corresponding Edge version

Regression

No, this never worked

Last working version (if regression)

No response

pushkin- avatar Sep 04 '24 19:09 pushkin-

@pushkin- you are saying that it does not repro in Edge. What have you tried there?

vbryh-msft avatar Sep 05 '24 23:09 vbryh-msft

@vbryh-msft I could only pick yes or no, so I picked no. I have no idea if it's an Edge problem or not. I'd need to know if there is some WebMessageReceived thing that is awaited and trigger a postmessage.

pushkin- avatar Sep 06 '24 01:09 pushkin-

Interestingly enough, this only seems to occur when the system context menu is shown via Alt+Space. If it's instead shown by right-clicking the application's title bar, the web requests are posted as expected.

mgalla10 avatar Sep 24 '24 15:09 mgalla10