New issue
Advanced search Search tips

Issue 847664 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

[desktopCapture Win] Hangout presenting notification window blocks window sharing

Project Member Reported by braveyao@chromium.org, May 29 2018

Issue description

What steps will reproduce the problem?
(1) Open Word and maximize it
(2) Join a Hangout meeting
(3) Present the Word window

What is the expected result?
Word window can be shared successfully.

What happens instead?
Word window is shared, but with no update, until the Presenting notification window is dismissed, automatically or manually.

The problem is Chrome uses Windows native framework to show the notification of the ongoing presenting. This notification window is enumerated as a separated window which is on top most. If this window blocks the target window, Chrome can't do the cropping and has to switch to GDI methods. If GDI methods can't capture the target window, then capturing will fail until the notification is dismissed.



 
Project Member

Comment 1 by bugdroid1@chromium.org, May 31 2018

The following revision refers to this bug:
  https://webrtc.googlesource.com/src.git/+/7f1583c9214173f67b3c7f70c7fce7f5846142d1

commit 7f1583c9214173f67b3c7f70c7fce7f5846142d1
Author: braveyao <braveyao@webrtc.org>
Date: Thu May 31 17:07:16 2018

[desktopCapture Windows] ignore Chrome notification window on top

Chrome uses Windows native framework to show the notification of the
ongoing presenting. This notification window is enumerated as a
separated window which is on top most. If this window blocks the target
window, Chrome can't do the cropping and has to switch to GDI methods.
If GDI methods can't capture the target window, then capturing will fail
until the notification is dismissed.

It's hard to identify the notification window in EnumWindows() callback.
So far it works if we ignore window with no title and class name
prefixed with "Chrome_WidgetWin_" and with certain extended styles,
as so does in this CL.

Bug:  chromium:847664 
Change-Id: Iafabcb1f685adb91bf092475642151e1475cdf61
Reviewed-on: https://webrtc-review.googlesource.com/79742
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23474}
[modify] https://crrev.com/7f1583c9214173f67b3c7f70c7fce7f5846142d1/modules/desktop_capture/cropping_window_capturer_win.cc
[modify] https://crrev.com/7f1583c9214173f67b3c7f70c7fce7f5846142d1/modules/desktop_capture/win/window_capture_utils.cc
[modify] https://crrev.com/7f1583c9214173f67b3c7f70c7fce7f5846142d1/modules/desktop_capture/win/window_capture_utils.h

Project Member

Comment 2 by bugdroid1@chromium.org, Jun 1 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ffd783bcfeffa70258c0bb47773e4858c7b4f78

commit 5ffd783bcfeffa70258c0bb47773e4858c7b4f78
Author: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Jun 01 07:35:49 2018

Roll src/third_party/webrtc 942b360..5234a49 (29 commits)

https://webrtc.googlesource.com/src.git/+log/942b360..5234a49


git log 942b360..5234a49 --date=short --no-merges --format='%ad %ae %s'
2018-05-29 benwright@webrtc.org Create PeerConnectionFactoryDependencies to prevent new function overloads.
2018-05-31 buildbot@webrtc.org Roll chromium_revision 54223a6fbb..2fd473c996 (563301:563409)
2018-05-31 deadbeef@webrtc.org Implement proper SCTP data channel closing procedure.
2018-05-24 deadbeef@webrtc.org Fixing bug with PseudoTcp that corrupts data if initial packet is lost.
2018-05-31 xz4215@gmail.com Remove unnecessary set_stream_ids call
2018-05-31 buildbot@webrtc.org Roll chromium_revision 812f7cad93..54223a6fbb (563201:563301)
2018-05-30 braveyao@webrtc.org [desktopCapture Windows] ignore Chrome notification window on top
2018-05-31 gustaf@webrtc.org AEC3: CascadedBiQuadFilter can run different filters in cascade
2018-05-31 buildbot@webrtc.org Roll chromium_revision 64b2aa35c9..812f7cad93 (563090:563201)
2018-05-31 hta@webrtc.org Add collection of usage signatures on PeerConnections
2018-05-31 ilnik@webrtc.org Add test against crashes in VideoQualityObserver
2018-05-31 brandtr@webrtc.org Refactor SimulcastTestUtility into SimulcastTestFixture{,Impl}
2018-05-31 mbonadei@webrtc.org Revert "Use absl::optional instead or rtc::Optional"
2018-05-31 srte@webrtc.org Adds loss rate filter in BBR controller.
2018-05-29 asapersson@webrtc.org Add min_bitrate_bps to RtpEncodingParameters.
2018-05-31 nisse@webrtc.org Add placeholder header file api/video_codecs/video_codec.h.
2018-05-30 terelius@webrtc.org Split IceCandidatePairEventType enum.
2018-05-30 deadbeef@webrtc.org Fixing null rtc::Optional dereference in VideoQualityObserver.
2018-05-30 nisse@webrtc.org Delete definitions of NULL.
2018-05-30 kthelgason@webrtc.org iOS SDK 10.0 compatability.
2018-05-31 danilchap@webrtc.org Reland "Use absl::optional instead or rtc::Optional"
2018-05-30 buildbot@webrtc.org Roll chromium_revision 372312ba2f..64b2aa35c9 (562984:563090)
2018-05-30 xz4215@gmail.com ObjC: Notify local video track
2018-05-30 buildbot@webrtc.org Roll chromium_revision ebe721b053..372312ba2f (562863:562984)
2018-05-30 buildbot@webrtc.org Roll chromium_revision 9d94097261..ebe721b053 (562745:562863)
2018-05-30 jtteh@webrtc.org Revert "Metal rendering should account for cropping."
2018-05-30 kthelgason@webrtc.org Remove deprecated mac capture code.
2018-05-30 andersc@webrtc.org Add missing header file to WebRTC iOS SDK.
2018-05-23 peterhanspers@webrtc.org Metal rendering should account for cropping.

Created with:
  gclient setdep -r src/third_party/webrtc@5234a49

The AutoRoll server is located here: https://webrtc-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_archive_rel_ng;master.tryserver.chromium.mac:mac_chromium_archive_rel_ng

BUG=chromium:None,chromium:449934,chromium:None,chromium:None,chromium:847664,chromium:846615,chromium:None,chromium:718508,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None,chromium:None

TBR=webrtc-chromium-sheriffs-robots@google.com

Change-Id: I41813f1030635c268c626c688bebc71c6b03d739
Reviewed-on: https://chromium-review.googlesource.com/1082012
Reviewed-by: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: webrtc-chromium-autoroll <webrtc-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#563560}
[modify] https://crrev.com/5ffd783bcfeffa70258c0bb47773e4858c7b4f78/DEPS

Status: Fixed (was: Assigned)
[bulk-edit: disregard if N/A] Can the owner please set milestone to this bug if applicable?
Labels: M-69
Labels: Needs-Feedback
Unable to reproduce this issue on build without fix(Checked on 68.0.3427.0),hence unable to verify this on latest canary.

Steps: 1. Joined hangouts meeting and started screenshare
2. Opened word and typed in word doc by sender -- observing successful update in receiver end. Attaching screencast for reference.

@braveyao: Please check the screencast and let us know if we miss anything. Please help in verifying the fix on latest canary.

Thanks!


847664.mp4
683 KB View Download
I guess the reason is there is no notification(as in the attachment) shown in your test.

To allow notification, in Chrome->setting->advanced setting->content setting->notification, allow https://meet.google.com:443 if you are using Meet for the test or other website accordingly.

Canary has the fix and works fine.
Screenshot from 2018-06-08 09-38-53.png
9.3 KB View Download

Sign in to add a comment