New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 806366 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 1
Type: Bug

Blocked on:
issue 806375
issue 809867

Blocking:
issue 618407
issue 816900
issue 810389



Sign in to add a comment

Migrate Desktop (CrOS) and Browser WIndow (Aura) screen capture to be based on VIZ frame sink capturer

Project Member Reported by m...@chromium.org, Jan 26 2018

Issue description

Tracks the changes to replace the existing "capture of aura::RootWindows" implementation with one that is based on the new viz::FrameSinkCapturer.

Current status:

1. Tab capture has already landed and proven the viz::FrameSinkCapturer is working. (See  bug 754872 .)

2. Confirmed that desktop capture on CrOS and browser window capture on Win/Linux could work by using the FrameSinkCapturer and passing it an aura::RootWindow's frame sink id.

3. Undetermined: How will browser window capture on CrOS work? Options include:

  a. [Ideal] Giving individual browser windows a frame_sink_id+Surface. But this work is not planned to occur until mus+ash is closer to completion.
  b. [Hacky #1] Capture the whole desktop, but crop to where the browser window is on-screen. The problem with this is that if any other windows occlude the target, we would be capturing other windows. This would be a privacy issue.
  c. [Hacky #2] Issue CopyOutputRequests on the Layer. The problems with this are performance-related: The resulting video will not be "smooth" to the user, resource usage per-frame would be much higher, and it's likely we'd have to limit frame rates to 5 FPS. Furthermore, this option is blocked until "snapshot" CopyOutputRequests on Layers are implemented for VIZ.

 

Comment 1 by fsamuel@google.com, Jan 26 2018

Cc: sadrul@chromium.org sky@chromium.org anicolao@chromium.org danakj@chromium.org gklassen@chromium.org
+various viz folks to raise awareness.

Comment 2 by m...@chromium.org, Jan 26 2018

BTW: #2 is code complete (on my desktop) and working. For #3, option C is most likely in the short-term, with option A becoming available late 2018/early 2019 (after enough mus+ash work has been completed).

Comment 3 by m...@chromium.org, Jan 26 2018

Blockedon: 806375

Comment 4 by sky@chromium.org, Jan 26 2018

Summary: Migrate Desktop (CrOS) and Browser WIndow (Aura) screen capture to be based on VIZ frame sink capturer (was: Migrate Desktop (CrOS) and Browser WIndow (Aura) capture to be based on VIZ frame sink capturer)
capture -> screen capture

Comment 5 by fsamuel@google.com, Jan 26 2018

Cc: rjkroege@chromium.org
+rjkroege@

Comment 6 by m...@chromium.org, Feb 1 2018

Components: -Blink>GetUserMedia>Desktop Internals>Media>Capture

Comment 7 by m...@chromium.org, Feb 7 2018

Blockedon: 809867

Comment 8 by m...@chromium.org, Feb 7 2018

Components: Internals>Media>ScreenCapture

Comment 9 by m...@chromium.org, Feb 7 2018

Components: -Internals>Media>Capture
Project Member

Comment 10 by bugdroid1@chromium.org, Feb 8 2018

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

commit 483530c1094f0ad6fe36663262b484be300f472e
Author: Yuri Wiitala <miu@chromium.org>
Date: Thu Feb 08 07:17:34 2018

Layer CopyOutputRequests execute in VIZ service.

Implements the final missing pieces allowing CopyOutputRequests made on
Layers to propagate and execute in the VIZ display compositor:

1. Added missing mojo fields and struct traits for viz::CopyOutputRequest
and viz::RenderPass.

2. Added extra transform code to cc::EffectTree::TakeCRsAndTransform()
to account for the scaling ratio, not just the source area.

3. Updated DelegatedFrameHost::CopyFromCompositingSurface() to use the
new scaling APIs, enabling testing and otherwise proving that all "the
plumbing" is in-place.

4. Updated RenderWidgetHostViewBrowserTests so that they now work with
--enabled-features=VizDisplayCompositor. (And, disabled dead tests I did
not feel we should bother updating; to be removed in a later change.)

5. Added privilege checks to make sure CopyOutputRequests cannot be made
from unprivileged clients. Added new RWHostImpl browser test to confirm.

Testing (all with and without --enable-features=VizDisplayCompositor):

1. All RenderWidgetHostViewBrowserTest content_browsertests pass.

2. On CrOS Ash desktop, tested CTRL-F5 (full screenshot) and
SHIFT-CTRL-F5 (partial screenshot).

3. On Linux, confirmed chrome.captureVisibleTab() screenshot API works
via the common/extensions/docs/examples/api/tabs/screenshot demo
extension.

Bug:  806375 ,  806366 ,  759310 ,  771354 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I98ad6cd90f332318dbdea9449e5d9c3a31679114
Reviewed-on: https://chromium-review.googlesource.com/890339
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Charlie Reis <creis@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535325}
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/cc/trees/property_tree.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/common/quads/compositor_frame.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/common/quads/compositor_frame.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/common/quads/render_pass.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/display/surface_aggregator_unittest.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/frame_sinks/compositor_frame_sink_impl.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/frame_sinks/compositor_frame_sink_support.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/frame_sinks/compositor_frame_sink_support.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/frame_sinks/compositor_frame_sink_support_unittest.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/service/frame_sinks/root_compositor_frame_sink_impl.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/components/viz/test/test_layer_tree_frame_sink.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/browser/bad_message.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/browser/renderer_host/delegated_frame_host.cc
[add] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/browser/renderer_host/render_widget_host_browsertest.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/browser/renderer_host/render_widget_host_impl.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/browser/renderer_host/render_widget_host_view_browsertest.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/content/test/BUILD.gn
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/cpp/compositing/copy_output_request_struct_traits.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/cpp/compositing/copy_output_request_struct_traits.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/cpp/compositing/render_pass_struct_traits.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/cpp/compositing/render_pass_struct_traits.h
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/cpp/compositing/struct_traits_unittest.cc
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/interfaces/compositing/copy_output_request.mojom
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/services/viz/public/interfaces/compositing/render_pass.mojom
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/testing/buildbot/filters/viz.content_browsertests.filter
[modify] https://crrev.com/483530c1094f0ad6fe36663262b484be300f472e/tools/metrics/histograms/enums.xml

Comment 11 by m...@chromium.org, Feb 8 2018

Blocking: 810389
Project Member

Comment 12 by bugdroid1@chromium.org, Feb 22 2018

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

commit 75077638cdb3d2b098ccf5f649ec33b1c98aa8fd
Author: James Cook <jamescook@chromium.org>
Date: Thu Feb 22 22:22:19 2018

cros: Workaround crash in Feedback tool under --mash

The feedback app uses desktop capture to take a screenshot, which
crashes in chrome --mash because it tries to use ash::Shell from the
browser process.

Just skip the screenshot under --mash. This allows users to send us
feedback reports, just missing the screenshot.

Bug:  806366 , 807408
Test: "Report an issue" works with chrome --mash with blank screenshot
Change-Id: I619ae60dd839cd87117cf7dc840c92053e3f0964
Reviewed-on: https://chromium-review.googlesource.com/927353
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Commit-Queue: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538589}
[modify] https://crrev.com/75077638cdb3d2b098ccf5f649ec33b1c98aa8fd/chrome/browser/media/webrtc/desktop_capture_access_handler.cc

Blocking: 816900
Project Member

Comment 14 by bugdroid1@chromium.org, Mar 22 2018

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

commit 0ace60f0bda35d4788e12314314758465ccf70f5
Author: Yuri Wiitala <miu@chromium.org>
Date: Thu Mar 22 21:28:11 2018

NativeDesktopMediaList: Use widget aura window instead of content window.

This changes the aura::Window instance being targeted for capture to the
window corresponding 1:1 with a compositor frame sink (the parent of the
content aura::Window). This is needed to support upcoming work to enable
browser window capture (all Aura platforms) and also desktop capture
(CrOS only) to use the VIZ service.

Even though the new target Window is being changed, the same pixels are
being captured by the existing desktop/browser window capture impl, and
so this change does not produce any user-visible behavior change.

Bug:  806366 
Change-Id: I83108e72141a52905f894df6a34715c46d2da7a4
Reviewed-on: https://chromium-review.googlesource.com/974168
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545257}
[modify] https://crrev.com/0ace60f0bda35d4788e12314314758465ccf70f5/chrome/browser/media/webrtc/native_desktop_media_list.cc
[modify] https://crrev.com/0ace60f0bda35d4788e12314314758465ccf70f5/chrome/browser/media/webrtc/native_desktop_media_list_unittest.cc

Comment 15 by amp@chromium.org, Apr 10 2018

Blocking: 618407
Project Member

Comment 16 by bugdroid1@chromium.org, May 11 2018

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

commit 89733b603f5a5c1fa127a470c94f2d0c3c800337
Author: Yuri Wiitala <miu@chromium.org>
Date: Fri May 11 22:14:31 2018

Refactor many components of WCVCDBrowserTest for re-use.

Moves/Refactors a lot of test infrastructure that can be re-used in an
upcoming change to also test the new browser window capture impl:

ContentCaptureDeviceBrowserTestBase: A common base class that sets up a
content shell navigated to a test page, whose content can also be
changed as test procedures require.

FakeVideoCaptureStack: A simple representation of the entire downstream
video capture stack that just takes the screen-captured video frames an
stores them in a queue for later examination by the tests.

FrameTestUtil: Math/Color utilities for analyzing the content in the
captured video frames.

Bug:  806366 
Change-Id: I899db11043944ea5a1206a58b2593a317222fdab
Reviewed-on: https://chromium-review.googlesource.com/1006072
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558034}
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/content_capture_device_browsertest_base.cc
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/content_capture_device_browsertest_base.h
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/fake_video_capture_stack.cc
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/fake_video_capture_stack.h
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/frame_test_util.cc
[add] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/frame_test_util.h
[modify] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/89733b603f5a5c1fa127a470c94f2d0c3c800337/content/test/BUILD.gn

Project Member

Comment 17 by bugdroid1@chromium.org, May 17 2018

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

commit b2afe0318cbb3c18ec0a456ea040c357149a64b8
Author: Yuri Wiitala <miu@chromium.org>
Date: Thu May 17 00:49:48 2018

New Desktop/Browser Window screen capture impl, based on VIZ services.

Adds content::AuraWindowVideoCaptureDevice, which provides screen
capture of aura::Windows that have compositor frame sinks associated
with them. Then, for Chrome OS browser window capture, where a CFS is
not available, use a fall-back window capturer impl instead. The
intention is for the LameWindowCapturerChromeOS to be a temporary
solution until more work is complete on services/ui/ws (the new Window
Service).

Note: This change does not activate the new impl yet. A follow-up
change will switch from the legacy impl to the new impl.

Bug:  806366 
Change-Id: Ia6aa81e4addde603b120a6ab61c5e35a0041b418
Reviewed-on: https://chromium-review.googlesource.com/1006366
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Adam Parker <amp@chromium.org>
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559371}
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/BUILD.gn
[add] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/aura_window_video_capture_device.cc
[add] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/aura_window_video_capture_device.h
[add] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/content_capture_device_browsertest_base.cc
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/content_capture_device_browsertest_base.h
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/frame_sink_video_capture_device.cc
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/frame_sink_video_capture_device.h
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
[add] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/lame_window_capturer_chromeos.cc
[add] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/lame_window_capturer_chromeos.h
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/b2afe0318cbb3c18ec0a456ea040c357149a64b8/content/test/BUILD.gn

Project Member

Comment 18 by bugdroid1@chromium.org, May 18 2018

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

commit f18c4b374a237be908cae8125e5bb009dc3e7bfe
Author: Yuri Wiitala <miu@chromium.org>
Date: Fri May 18 00:24:17 2018

Switch to the new VIZ-based Aura desktop/window capturer.

Changes content::InProcessVideoCaptureDeviceLauncher to use the new
viz::FrameSinkVideoCapturer-based implementation for the capture of Aura
windows. This provides desktop capture on ChromeOS, and window capture
on all Aura platforms (Win/ChromeOS/Linux).

The old implementation will be removed in a follow-up change.

Bug:  806366 
Change-Id: I4ac183e393871c990bbe1182f3fefeb703d7185b
Reviewed-on: https://chromium-review.googlesource.com/1060578
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Emircan Uysaler <emircan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559751}
[modify] https://crrev.com/f18c4b374a237be908cae8125e5bb009dc3e7bfe/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
[modify] https://crrev.com/f18c4b374a237be908cae8125e5bb009dc3e7bfe/content/browser/renderer_host/media/in_process_video_capture_device_launcher.h

Project Member

Comment 19 by bugdroid1@chromium.org, May 18 2018

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

commit 8b201ee0215702f27a06203e6d5cb1beb5b2223a
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Fri May 18 00:47:28 2018

Revert "New Desktop/Browser Window screen capture impl, based on VIZ services."

This reverts commit b2afe0318cbb3c18ec0a456ea040c357149a64b8.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 559371 as the
culprit for flakes in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/flake/flake-culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyQwsSDEZsYWtlQ3VscHJpdCIxY2hyb21pdW0vYjJhZmUwMzE4Y2JiM2MxOGVjMGE0NTZlYTA0MGMzNTcxNDlhNjRiOAw

Sample Failed Build: https://ci.chromium.org/buildbot/tryserver.chromium.linux/linux_chromium_rel_ng/96258

Sample Failed Step: content_browsertests (with patch)

Sample Flaky Test: AuraWindowVideoCaptureDeviceBrowserTestP.CapturesContentChanges/2

Original change's description:
> New Desktop/Browser Window screen capture impl, based on VIZ services.
> 
> Adds content::AuraWindowVideoCaptureDevice, which provides screen
> capture of aura::Windows that have compositor frame sinks associated
> with them. Then, for Chrome OS browser window capture, where a CFS is
> not available, use a fall-back window capturer impl instead. The
> intention is for the LameWindowCapturerChromeOS to be a temporary
> solution until more work is complete on services/ui/ws (the new Window
> Service).
> 
> Note: This change does not activate the new impl yet. A follow-up
> change will switch from the legacy impl to the new impl.
> 
> Bug:  806366 
> Change-Id: Ia6aa81e4addde603b120a6ab61c5e35a0041b418
> Reviewed-on: https://chromium-review.googlesource.com/1006366
> Commit-Queue: Yuri Wiitala <miu@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Adam Parker <amp@chromium.org>
> Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#559371}

Change-Id: I6e3077a2589928ac33f0e6fe18b7a13f331be16a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  806366 ,  844237 
Reviewed-on: https://chromium-review.googlesource.com/1065270
Cr-Commit-Position: refs/heads/master@{#559755}
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/BUILD.gn
[delete] https://crrev.com/3f2dc028ad0011e5d68b17bf41870a9296181f28/content/browser/media/capture/aura_window_video_capture_device.cc
[delete] https://crrev.com/3f2dc028ad0011e5d68b17bf41870a9296181f28/content/browser/media/capture/aura_window_video_capture_device.h
[delete] https://crrev.com/3f2dc028ad0011e5d68b17bf41870a9296181f28/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/content_capture_device_browsertest_base.cc
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/content_capture_device_browsertest_base.h
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/frame_sink_video_capture_device.cc
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/frame_sink_video_capture_device.h
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
[delete] https://crrev.com/3f2dc028ad0011e5d68b17bf41870a9296181f28/content/browser/media/capture/lame_window_capturer_chromeos.cc
[delete] https://crrev.com/3f2dc028ad0011e5d68b17bf41870a9296181f28/content/browser/media/capture/lame_window_capturer_chromeos.h
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/8b201ee0215702f27a06203e6d5cb1beb5b2223a/content/test/BUILD.gn

Project Member

Comment 20 by bugdroid1@chromium.org, May 18 2018

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

commit 41f301add8ff2f6d3b3500877ac37e0195cec701
Author: Lei Zhang <thestig@chromium.org>
Date: Fri May 18 01:19:25 2018

Revert "Switch to the new VIZ-based Aura desktop/window capturer."

This reverts commit f18c4b374a237be908cae8125e5bb009dc3e7bfe.

Reason for revert: Need to do this to unbreak the build.

This CL depends on r559371, but r559755 reverted it. So this CL has to
be reverted as well. Filed  https://crbug.com/844264 

Original change's description:
> Switch to the new VIZ-based Aura desktop/window capturer.
> 
> Changes content::InProcessVideoCaptureDeviceLauncher to use the new
> viz::FrameSinkVideoCapturer-based implementation for the capture of Aura
> windows. This provides desktop capture on ChromeOS, and window capture
> on all Aura platforms (Win/ChromeOS/Linux).
> 
> The old implementation will be removed in a follow-up change.
> 
> Bug:  806366 
> Change-Id: I4ac183e393871c990bbe1182f3fefeb703d7185b
> Reviewed-on: https://chromium-review.googlesource.com/1060578
> Commit-Queue: Yuri Wiitala <miu@chromium.org>
> Reviewed-by: Emircan Uysaler <emircan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#559751}

TBR=miu@chromium.org,emircan@chromium.org,chfremer@chromium.org

Change-Id: Ia9601c7b64587371293c0f90397b23a70c17ddc7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  806366 
Reviewed-on: https://chromium-review.googlesource.com/1064976
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559759}
[modify] https://crrev.com/41f301add8ff2f6d3b3500877ac37e0195cec701/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
[modify] https://crrev.com/41f301add8ff2f6d3b3500877ac37e0195cec701/content/browser/renderer_host/media/in_process_video_capture_device_launcher.h

Project Member

Comment 21 by bugdroid1@chromium.org, May 18 2018

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

commit 45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c
Author: Yuri Wiitala <miu@chromium.org>
Date: Fri May 18 22:39:51 2018

Reland: New Desktop/Browser Window screen capture impl + switch-over.

*** This is a reland of two prior changes. They are being relanded
together to avoid breaking the tree (compile) if only the first should
happen to need to be reverted. This reland includes a tweak to relax the
color accuracy requirements for the browser test when using software
compositing mode. Findings/Details on this are in the TODO code
comments, for later follow-up. ***

Change 1:
  https://chromium-review.googlesource.com/c/chromium/src/+/1006366

Adds content::AuraWindowVideoCaptureDevice, which provides screen
capture of aura::Windows that have compositor frame sinks associated
with them. Then, for Chrome OS browser window capture, where a CFS is
not available, use a fall-back window capturer impl instead. The
intention is for the LameWindowCapturerChromeOS to be a temporary
solution until more work is complete on services/ui/ws (the new Window
Service).

Change 2:
  https://chromium-review.googlesource.com/c/chromium/src/+/1060578

Switch to the new VIZ-based Aura desktop/window capturer.

Changes content::InProcessVideoCaptureDeviceLauncher to use the new
viz::FrameSinkVideoCapturer-based implementation for the capture of Aura
windows. This provides desktop capture on ChromeOS, and window capture
on all Aura platforms (Win/ChromeOS/Linux).

The old implementation will be removed in a follow-up change.

TBR=piman@chromium.org,amp@chromium.org,xjz@chromium.org,emircan@chromium.org

Bug:  806366 
Change-Id: I7b9c8816c060e471165f0d5708478ed984704c76
Reviewed-on: https://chromium-review.googlesource.com/1066676
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Yuri Wiitala <miu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560077}
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/BUILD.gn
[add] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/aura_window_video_capture_device.cc
[add] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/aura_window_video_capture_device.h
[add] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/aura_window_video_capture_device_browsertest.cc
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/content_capture_device_browsertest_base.cc
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/content_capture_device_browsertest_base.h
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/frame_sink_video_capture_device.cc
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/frame_sink_video_capture_device.h
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/frame_sink_video_capture_device_unittest.cc
[add] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/lame_window_capturer_chromeos.cc
[add] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/lame_window_capturer_chromeos.h
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/media/capture/web_contents_video_capture_device_browsertest.cc
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/renderer_host/media/in_process_video_capture_device_launcher.cc
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/browser/renderer_host/media/in_process_video_capture_device_launcher.h
[modify] https://crrev.com/45ed65eaab60ab99686c7e9ea9a8b052bd85cd2c/content/test/BUILD.gn

Comment 22 by m...@chromium.org, May 29 2018

Status: Fixed (was: Started)
This is done and made the M68 branch.
Project Member

Comment 23 by bugdroid1@chromium.org, Jul 16

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

commit 75a951bacdc1381c1db9440bdf2d275cb340fe8b
Author: Yuri Wiitala <miu@chromium.org>
Date: Mon Jul 16 22:35:49 2018

Remove now-dead code: AuraWindowCaptureMachine and DesktopCaptureDeviceAura

The new implementations have been live for a bit more than a milestone.
It's safe now to delete the old ones.

TBR=jam@chromium.org

Bug:  806366 
Change-Id: Icde37e386f975dcc0cee70c17ef482191e74ceba
Reviewed-on: https://chromium-review.googlesource.com/1137453
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575451}
[modify] https://crrev.com/75a951bacdc1381c1db9440bdf2d275cb340fe8b/content/browser/BUILD.gn
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/aura_window_capture_machine.cc
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/aura_window_capture_machine.h
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/desktop_capture_device_aura.cc
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/desktop_capture_device_aura.h
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/desktop_capture_device_aura_unittest.cc
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/fake_webcontent_capture_machine.cc
[delete] https://crrev.com/85726dfc7dc5285eb9bd0a02a90e887b9ee73c9c/content/browser/media/capture/fake_webcontent_capture_machine.h
[modify] https://crrev.com/75a951bacdc1381c1db9440bdf2d275cb340fe8b/content/test/BUILD.gn

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 18

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

commit dd22262b9c2a9630a931f886b4112f916235aa77
Author: Yuri Wiitala <miu@chromium.org>
Date: Wed Jul 18 00:10:59 2018

Merge media::ScreenCaptureDeviceCore into ScreenCaptureMachineAndroid.

With no other screen capture implementations dependent upon
media::ScreenCaptureDeviceCore, ThreadSafeCaptureOracle, etc.; this
change merges this code into ScreenCaptureMachineAndroid. Unused
functionality has been stripped-out, and minor callpoint- and lint-
related clean-ups were made. No behavior/functional changes.

Testing: Built monochrome_public_apk, installed it to my phone, and
confirmed Android screen capture from that Chromium build still works by
running a demo app: https://paulkinlan.github.io/screenrecord/.

Bug:  806366 ,487935
Change-Id: I3edb2603261b6ed60e31edf795ac8da9a2a8525c
Reviewed-on: https://chromium-review.googlesource.com/1137733
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Weiyong Yao <braveyao@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575864}
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/content/browser/media/capture/screen_capture_device_android.cc
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/content/browser/media/capture/screen_capture_device_android.h
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/BUILD.gn
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/content/android/BUILD.gn
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/content/android/screen_capture_machine_android.cc
[modify] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/content/android/screen_capture_machine_android.h
[rename] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/content/android/thread_safe_capture_oracle.cc
[rename] https://crrev.com/dd22262b9c2a9630a931f886b4112f916235aa77/media/capture/content/android/thread_safe_capture_oracle.h
[delete] https://crrev.com/4d370e2ccac71fff3c4a5709439c2eef747c7340/media/capture/content/screen_capture_device_core.cc
[delete] https://crrev.com/4d370e2ccac71fff3c4a5709439c2eef747c7340/media/capture/content/screen_capture_device_core.h

Project Member

Comment 25 by bugdroid1@chromium.org, Aug 1

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

commit c1ff2ed2c0b33ef6d0de60f0c034486a4519261e
Author: Yuri Wiitala <miu@chromium.org>
Date: Wed Aug 01 20:09:23 2018

'Place-holder' overlay rendering for CrOS window capture.

A minimal FrameSinkVideoCaptureOverlay implementation for browser window
video capture on ChromeOS (i.e., not desktop capture, and not
WebContents capture). The intention is for this code to be a temporary
solution until more work is complete on services/ui/ws (the new Window
Service).

Bug:  810133 , 806366 
Change-Id: I4f929248a9620f96f2a538caaac9761a472cbe09
Reviewed-on: https://chromium-review.googlesource.com/1155985
Commit-Queue: Yuri Wiitala <miu@chromium.org>
Reviewed-by: Xiangjun Zhang <xjz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579913}
[modify] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/BUILD.gn
[add] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/media/capture/lame_capture_overlay_chromeos.cc
[add] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/media/capture/lame_capture_overlay_chromeos.h
[add] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/media/capture/lame_capture_overlay_chromeos_unittest.cc
[modify] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/media/capture/lame_window_capturer_chromeos.cc
[modify] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/browser/media/capture/lame_window_capturer_chromeos.h
[modify] https://crrev.com/c1ff2ed2c0b33ef6d0de60f0c034486a4519261e/content/test/BUILD.gn

Sign in to add a comment