From 0976e7ab554fa023feb465d3e5c7907db8b2a6d3 Mon Sep 17 00:00:00 2001 From: Shivesh Ganju Date: Wed, 21 Sep 2022 11:55:24 -0400 Subject: [PATCH] [fuchsia][scenic] Call GetViewRef once per view in flatland platform (flutter/engine#36304) view. Currently flatland platform view recursively calls GetViewRef to watch for ViewRef changes. Since re-linking of views will not be supported by flatland, GetViewRef should be called only once per view. Test: ffx test run "fuchsia-pkg://fuchsia.com/flutter_runner_tests#meta/flutter_runner_tests.cm" Bug: https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=109948 --- .../platform/fuchsia/flutter/flatland_platform_view.cc | 7 ------- .../flutter/tests/flatland_platform_view_unittest.cc | 4 +--- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/engine/src/flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc b/engine/src/flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc index 86ea787e9d7..af7b9ee35fb 100644 --- a/engine/src/flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc +++ b/engine/src/flutter/shell/platform/fuchsia/flutter/flatland_platform_view.cc @@ -154,13 +154,6 @@ void FlatlandPlatformView::OnChildViewViewRef( fidl::Clone(view_ref, &view_ref_clone); pointer_injector_delegate_->OnCreateView(view_id, std::move(view_ref_clone)); OnChildViewConnected(content_id); - - // TODO(http://fxbug.dev/109948): Remove the following GetViewRef call. - child_view_info_.at(content_id) - .child_view_watcher->GetViewRef( - [this, content_id, view_id](fuchsia::ui::views::ViewRef view_ref) { - this->OnChildViewViewRef(content_id, view_id, std::move(view_ref)); - }); } void FlatlandPlatformView::OnCreateView(ViewCallback on_view_created, diff --git a/engine/src/flutter/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc b/engine/src/flutter/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc index 48269747bc4..be5b4e32f1d 100644 --- a/engine/src/flutter/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc +++ b/engine/src/flutter/shell/platform/fuchsia/flutter/tests/flatland_platform_view_unittest.cc @@ -247,9 +247,7 @@ class MockChildViewWatcher // |fuchsia::ui::composition::ChildViewWatcher| void GetViewRef(GetViewRefCallback callback) override { // GetViewRef only returns once as per flatland.fidl comments - if (control_ref_.reference) { - return; - } + ASSERT_FALSE(control_ref_.reference); auto pair = scenic::ViewRefPair::New(); control_ref_ = std::move(pair.control_ref); callback(std::move(pair.view_ref));