Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot start web camera and microphone in a Google Meet and Microsoft Teams call #3592

Closed
szanto90balazs opened this issue Jun 22, 2023 · 19 comments
Assignees
Labels
bug Something isn't working tracked We are tracking this work internally.

Comments

@szanto90balazs
Copy link

szanto90balazs commented Jun 22, 2023

Description

When trying to join or create a meeting with the web version of Google Meet / Microsoft Teams app, the webcam and the microphone can't start at all, even though permissions are granted. Permissions are managed by our application using the CoreWebView2.PermissionRequested event.

Version
SDK: 1905.0
Runtime: 114.0.1823.51
Framework: WPF
OS: Win 10

Regression
Was this working before but has regressed?

  • Not sure, but I think yes, but can't recall when did it stop working

Repro Steps

  1. Open the WebView2WpfBrowser sample app. Make sure the clear the user data folder and any previous state.
  2. Go to meet.google.com or teams.microsoft.com and log in
  3. Start a new meeting
  4. Camera and microphone won't start even though access is granted

If the CoreWebView2.PermissionRequested is not utilized, it works fine.

Few other things I tried, but they didn't help:

  • single vs. multi monitor setup
  • single vs. multi webcam setup

Tested with a HP Omen notebook, but heard reports from other devices as well.

AB#45251145

@szanto90balazs szanto90balazs added the bug Something isn't working label Jun 22, 2023
@ElyssaJyu ElyssaJyu added the tracked We are tracking this work internally. label Jun 28, 2023
@ElyssaJyu
Copy link

Hi @szanto90balazs, I have reproduced the issue. It seems camera and microphone are stilled blocked though permission access for devices is granted. I've marked this issue tracked to get a bug opened internally so we can look into how we might be able to address this. Thanks

@vickiez
Copy link
Contributor

vickiez commented Jun 28, 2023

Hi @szanto90balazs, this appears to be an issue with the SavesInProfile property. Can you confirm that you are setting SavesInProfile to false? If so, can you fall back on the default behavior as a workaround while we work to fix the issue? We will aim to have a fix in stable by mid-August

@szanto90balazs
Copy link
Author

szanto90balazs commented Jun 30, 2023

Hi @vickiez, yes I can confirm that we use SavesInProfile = false. We share the same idea that we'll introduce a fallback to the default behavior for certain domains, but have to validate that it can and will work for us.

@szanto90balazs
Copy link
Author

@vickiez you mentioned you'll aim to have a fix in stable by mid-August? Would you mind pinging me once you have this fix available in canary? I would assume it's going to land there sooner and would let us provide feedback.

@vickiez
Copy link
Contributor

vickiez commented Jul 10, 2023

@szanto90balazs Yes, we will let you know when a fix is available in Canary! Were you able to validate that the fallback works for you? SetPermissionState may also be useful in restoring default state

@szanto90balazs
Copy link
Author

Hey @vickiez, thanks for the info. I was able to pull together a workaround using SetPermissionState. It unblocks us for now, but it's not a perfect solution, so we're looking forward for the official fix.

@MarkIngramUK
Copy link

@vickiez, what's the status of this? Is there an ETA for a fix?

CC @nishitha-burman

@nishitha-burman
Copy link
Collaborator

nishitha-burman commented Aug 7, 2023

Hi @MarkIngramUK, we are currently investigating a fix and will ping this thread once we have an update. Thank you!

@nishitha-burman
Copy link
Collaborator

Hi @szanto90balazs,

Can you please provide details on the limitations of using SetPermissionState as a workaround?

Thanks!

@szanto90balazs
Copy link
Author

Hi @nishitha-burman, when permissions are denied for instance, the page gets stuck with permissions denied, even if you press enable web camera button on Google Meet, you no longer get the permission request popup. So currently we provide means for users to reload the page and we call SetPermissionState right before reloading to reset permission state.

I think this was the main reason why we started utilizing SavesInProfile = false to avoid issues like that.

@nishitha-burman
Copy link
Collaborator

@szanto90balazs thank you for the details. Are you setting the state to Default each time you reload the page?

@szanto90balazs
Copy link
Author

@nishitha-burman Indeed, setting it to Default each time page reload is requested, and we actually do reset it for all non default permission settings. Keep in mind we only use SavesInProfile = true as a temporary workaround for certain sites:

var nonDefaultSettings = await CoreWebView2.Profile.GetNonDefaultPermissionSettingsAsync();
foreach (var setting in nonDefaultSettings)
{
    await CoreWebView2.Profile.SetPermissionStateAsync(setting.PermissionKind, setting.PermissionOrigin, CoreWebView2PermissionState.Default);
}

@nishitha-burman
Copy link
Collaborator

@szanto90balazs thank you for the details, can you please explain why you are doing SavesInProfile = true?

@szanto90balazs
Copy link
Author

@nishitha-burman

In the past we used SavesInProfile = false for all sites to avoid certain permission settings getting stuck, until we realized that users having camera/microphone issues on certain sites, like meet.google.com. Even though users were allowing the device to be used, the webcamera didn't start. @vickiez confirmed it's a bug and it has to do with the SavesInProfile = false setting.

So only for sites with webcam issues (e.g. meet.google.com) we started setting SavesInProfile = true and used the CoreWebView2.Profile.SetPermissionStateAsync(setting.PermissionKind, setting.PermissionOrigin, CoreWebView2PermissionState.Default); on every reload to reset the cache and minimize the permissions getting stuck behavior. This way users can start their webcams on these sites.

@nishitha-burman
Copy link
Collaborator

Fixed in version 123.0.2382.0+

@szanto90balazs
Copy link
Author

@nishitha-burman I retested with runtime version 124.0.2462.0 and it's still broken with Google Meet and Microsoft Teams. I used the same repro steps as I described in the issue. Anything I should check?

@byange
Copy link

byange commented Nov 12, 2024

@nishitha-burman Dear Miss, is this issue fixed now? Because the WebView2 Version 1.0.2849.39 still met the same issue, thx...

@vickiez
Copy link
Contributor

vickiez commented Nov 13, 2024

@szanto90balazs @byange we are not observing any issue using Google Meet and Zoom now when SavesInProfile is false.

You can see our sample implementation here: https://github.com/MicrosoftEdge/WebView2Samples/blob/1709010540399ac3628c48dce1255f0f2a301a36/SampleApps/WebView2APISample/SettingsComponent.cpp#L360
Do you notice any differences or have a repro app you can share?

@byange
Copy link

byange commented Nov 13, 2024

@vickiez Dear Miss, we have created a repro app https://github.com/byange/WpfApp1 and share with you, thx...
By the way, we have created a new ticket #4921 for Wpf and sorry for this inconvenience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working tracked We are tracking this work internally.
Projects
None yet
Development

No branches or pull requests

7 participants