From 0689cfc6ce15d7c622ce225475c60817493fb048 Mon Sep 17 00:00:00 2001 From: Caroline Liu Date: Tue, 18 Jul 2023 21:11:13 +0000 Subject: [PATCH] Reland "[fuchsia] remove Scenic/UseFlatland dependency in DesktopCapturer" This reverts commit 726992d7a4722b8a283d797d04432d0c6335ca96. Reason for revert: Relanding with original errors fixed (tested by building the patch locally against Chromium) This change no longer attempts to migrate the display size protocol from fuchsia.ui.scenic.Scenic/GetDisplayInfo to fuchsia.ui.display.singleton.Info/GetMetrics because the latter API was introduced in Fuchsia API 12, which is not yet supported in Chrome (hence some of the build errors causing the revert). Original change's description: > Revert "[fuchsia] remove Scenic and GFX dependencies in DesktopCapturer" > > This reverts commit fe5be2eb4ff8dccd96257fb8cbf32500c636c358. > > Reason for revert: This breaks the WebRTC roll into Chromium: > > - https://chromium-review.googlesource.com/c/chromium/src/+/4688561 > - https://ci.chromium.org/ui/p/chromium/builders/try/fuchsia-binary-size/399140/overview > > Error: > > [4273/4389] CXX obj/third_party/webrtc/modules/desktop_capture/desktop_capture/screen_capturer_fuchsia.o > FAILED: obj/third_party/webrtc/modules/desktop_capture/desktop_capture/screen_capturer_fuchsia.o > ../../buildtools/reclient/rewrapper -cfg=../../buildtools/reclient_cfgs/chromium-browser-clang/rewra...(too long) > ../../third_party/webrtc/modules/desktop_capture/screen_capturer_fuchsia.cc:59:10: error: use of undeclared identifier 'capturer' > 59 | return capturer(new ScreenCapturerFuchsia()); > | ^ > ../../third_party/webrtc/modules/desktop_capture/screen_capturer_fuchsia.cc:199:36: error: no type named 'InfoSyncPtr' in namespace 'fuchsia::ui::display::singleton' > > Original change's description: > > [fuchsia] remove Scenic and GFX dependencies in DesktopCapturer > > > > We previously used: > > - fuchsia.ui.scenic.Scenic/UsesFlatland to determine whether to use > > Flatland; from now on it should always be the case, so this check is > > no longer necessary. > > - fuchsia.ui.scenic.Scenic/GetDisplayInfo to get > > fuchsia.ui.gfx.DisplayInfo. This has been migrated to > > fuchsia.ui.display.singleton.Info/GetMetrics and > > fuchsia.ui.display.singleton.Metrics. > > > > Bug: fuchsia:100303 > > Change-Id: I147da9ffdf0ca49e1c5bde5d188e434fc660becc > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311860 > > Reviewed-by: Emircan Uysaler > > Reviewed-by: Alexander Cooper > > Commit-Queue: Caroline Liu > > Cr-Commit-Position: refs/heads/main@{#40432} > > Bug: fuchsia:100303, b/291393959 > Change-Id: Iae70e568a8c9819e40e48069af8cea0d4ef2b6c5 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/311801 > Owners-Override: Mirko Bonadei > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com > Commit-Queue: Mirko Bonadei > Cr-Commit-Position: refs/heads/main@{#40436} Bug: fuchsia:100303, b/291393959 Change-Id: Icb7074ac86c1804ab2bdf809ea1496539ee2bf80 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/312000 Commit-Queue: Caroline Liu Reviewed-by: Mirko Bonadei Reviewed-by: Alexander Cooper Cr-Commit-Position: refs/heads/main@{#40452} --- .../screen_capturer_fuchsia.cc | 32 ++----------------- .../desktop_capture/screen_capturer_fuchsia.h | 2 -- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/modules/desktop_capture/screen_capturer_fuchsia.cc b/modules/desktop_capture/screen_capturer_fuchsia.cc index 19c4c735ad..b67632d1f9 100644 --- a/modules/desktop_capture/screen_capturer_fuchsia.cc +++ b/modules/desktop_capture/screen_capturer_fuchsia.cc @@ -56,18 +56,12 @@ size_t RoundUpToMultiple(size_t value, size_t multiple) { std::unique_ptr DesktopCapturer::CreateRawScreenCapturer( const DesktopCaptureOptions& options) { - if (ScreenCapturerFuchsia::CheckRequirements()) { - std::unique_ptr capturer( - new ScreenCapturerFuchsia()); - return capturer; - } - return nullptr; + std::unique_ptr capturer(new ScreenCapturerFuchsia()); + return capturer; } ScreenCapturerFuchsia::ScreenCapturerFuchsia() - : component_context_(sys::ComponentContext::Create()) { - RTC_DCHECK(CheckRequirements()); -} + : component_context_(sys::ComponentContext::Create()) {} ScreenCapturerFuchsia::~ScreenCapturerFuchsia() { // unmap virtual memory mapped pointers @@ -82,26 +76,6 @@ ScreenCapturerFuchsia::~ScreenCapturerFuchsia() { } } -// TODO(fxbug.dev/100303): Remove this function when Flatland is the only API. -bool ScreenCapturerFuchsia::CheckRequirements() { - std::unique_ptr component_context = - sys::ComponentContext::Create(); - fuchsia::ui::scenic::ScenicSyncPtr scenic; - zx_status_t status = component_context->svc()->Connect(scenic.NewRequest()); - if (status != ZX_OK) { - RTC_LOG(LS_ERROR) << "Failed to connect to Scenic: " << status; - return false; - } - - bool scenic_uses_flatland = false; - scenic->UsesFlatland(&scenic_uses_flatland); - if (!scenic_uses_flatland) { - RTC_LOG(LS_ERROR) << "Screen capture not supported without Flatland."; - } - - return scenic_uses_flatland; -} - void ScreenCapturerFuchsia::Start(Callback* callback) { RTC_DCHECK(!callback_); RTC_DCHECK(callback); diff --git a/modules/desktop_capture/screen_capturer_fuchsia.h b/modules/desktop_capture/screen_capturer_fuchsia.h index 444930963f..6e0f87cc58 100644 --- a/modules/desktop_capture/screen_capturer_fuchsia.h +++ b/modules/desktop_capture/screen_capturer_fuchsia.h @@ -29,8 +29,6 @@ class ScreenCapturerFuchsia final : public DesktopCapturer { ScreenCapturerFuchsia(); ~ScreenCapturerFuchsia() override; - static bool CheckRequirements(); - // DesktopCapturer interface. void Start(Callback* callback) override; void CaptureFrame() override;