From 69ebe5fb28fca271b23010d43d4dc7f6e5286c4f Mon Sep 17 00:00:00 2001 From: Kevin Lindkvist Date: Fri, 31 May 2019 16:12:07 -0700 Subject: [PATCH] Remove references to Fuchsia's ContextWriter (#9157) --- ci/licenses_golden/licenses_flutter | 2 - .../integration/meta/dart_aot_runner_test.cmx | 1 - .../integration/meta/dart_jit_runner_test.cmx | 1 - .../fuchsia/dart/vmservice/meta/vmservice.cmx | 3 +- shell/platform/fuchsia/flutter/BUILD.gn | 2 - .../fuchsia/flutter/context_writer_bridge.cc | 80 ------------------- .../fuchsia/flutter/context_writer_bridge.h | 45 ----------- shell/platform/fuchsia/flutter/engine.cc | 12 +-- .../platform/fuchsia/flutter/platform_view.cc | 6 -- .../platform/fuchsia/flutter/platform_view.h | 6 -- 10 files changed, 2 insertions(+), 156 deletions(-) delete mode 100644 shell/platform/fuchsia/flutter/context_writer_bridge.cc delete mode 100644 shell/platform/fuchsia/flutter/context_writer_bridge.h diff --git a/ci/licenses_golden/licenses_flutter b/ci/licenses_golden/licenses_flutter index edeb0270f57..62ab580b50e 100644 --- a/ci/licenses_golden/licenses_flutter +++ b/ci/licenses_golden/licenses_flutter @@ -839,8 +839,6 @@ FILE: ../../../flutter/shell/platform/fuchsia/flutter/component.cc FILE: ../../../flutter/shell/platform/fuchsia/flutter/component.h FILE: ../../../flutter/shell/platform/fuchsia/flutter/compositor_context.cc FILE: ../../../flutter/shell/platform/fuchsia/flutter/compositor_context.h -FILE: ../../../flutter/shell/platform/fuchsia/flutter/context_writer_bridge.cc -FILE: ../../../flutter/shell/platform/fuchsia/flutter/context_writer_bridge.h FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.cc FILE: ../../../flutter/shell/platform/fuchsia/flutter/engine.h FILE: ../../../flutter/shell/platform/fuchsia/flutter/fuchsia_font_manager.cc diff --git a/shell/platform/fuchsia/dart/integration/meta/dart_aot_runner_test.cmx b/shell/platform/fuchsia/dart/integration/meta/dart_aot_runner_test.cmx index 807f64665d2..3f4d17b0d08 100644 --- a/shell/platform/fuchsia/dart/integration/meta/dart_aot_runner_test.cmx +++ b/shell/platform/fuchsia/dart/integration/meta/dart_aot_runner_test.cmx @@ -8,7 +8,6 @@ "fuchsia.fonts.Provider", "fuchsia.logger.LogSink", "fuchsia.modular.Clipboard", - "fuchsia.modular.ContextWriter", "fuchsia.modular.ModuleContext", "fuchsia.netstack.Netstack", "fuchsia.sys.Environment", diff --git a/shell/platform/fuchsia/dart/integration/meta/dart_jit_runner_test.cmx b/shell/platform/fuchsia/dart/integration/meta/dart_jit_runner_test.cmx index 0553a6cf88b..f1b69135278 100644 --- a/shell/platform/fuchsia/dart/integration/meta/dart_jit_runner_test.cmx +++ b/shell/platform/fuchsia/dart/integration/meta/dart_jit_runner_test.cmx @@ -8,7 +8,6 @@ "fuchsia.fonts.Provider", "fuchsia.logger.LogSink", "fuchsia.modular.Clipboard", - "fuchsia.modular.ContextWriter", "fuchsia.modular.ModuleContext", "fuchsia.netstack.Netstack", "fuchsia.sys.Environment", diff --git a/shell/platform/fuchsia/dart/vmservice/meta/vmservice.cmx b/shell/platform/fuchsia/dart/vmservice/meta/vmservice.cmx index d5b1215cc09..e609c7d5d23 100644 --- a/shell/platform/fuchsia/dart/vmservice/meta/vmservice.cmx +++ b/shell/platform/fuchsia/dart/vmservice/meta/vmservice.cmx @@ -8,7 +8,6 @@ "fuchsia.fonts.Provider", "fuchsia.logger.LogSink", "fuchsia.modular.Clipboard", - "fuchsia.modular.ContextWriter", "fuchsia.modular.ModuleContext", "fuchsia.netstack.Netstack", "fuchsia.sys.Environment", @@ -18,4 +17,4 @@ "fuchsia.wlan.service.Wlan" ] } -} \ No newline at end of file +} diff --git a/shell/platform/fuchsia/flutter/BUILD.gn b/shell/platform/fuchsia/flutter/BUILD.gn index fd93b705400..dbcfeda9267 100644 --- a/shell/platform/fuchsia/flutter/BUILD.gn +++ b/shell/platform/fuchsia/flutter/BUILD.gn @@ -15,8 +15,6 @@ if (using_fuchsia_sdk) { "component.h", "compositor_context.cc", "compositor_context.h", - "context_writer_bridge.cc", - "context_writer_bridge.h", "engine.cc", "engine.h", "fuchsia_font_manager.cc", diff --git a/shell/platform/fuchsia/flutter/context_writer_bridge.cc b/shell/platform/fuchsia/flutter/context_writer_bridge.cc deleted file mode 100644 index e58db95d169..00000000000 --- a/shell/platform/fuchsia/flutter/context_writer_bridge.cc +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "context_writer_bridge.h" - -#include - -#include "rapidjson/document.h" -#include "rapidjson/stringbuffer.h" -#include "rapidjson/writer.h" - -namespace flutter_runner { - -ContextWriterBridge::ContextWriterBridge( - fidl::InterfaceHandle writer) - : writer_(writer.Bind()) {} - -ContextWriterBridge::~ContextWriterBridge() = default; - -void ContextWriterBridge::UpdateSemantics( - const flutter::SemanticsNodeUpdates& update) { - for (const auto& update : update) { - const auto& node = update.second; - semantics_nodes_[node.id] = node; - } - std::vector visited_nodes; - UpdateVisitedForNodeAndChildren(0, &visited_nodes); - EraseUnvisitedNodes(visited_nodes); - - // The data sent to the Context Service is a JSON formatted list of labels - // for all on screen widgets. - rapidjson::Document nodes_json(rapidjson::kArrayType); - for (const int node_index : visited_nodes) { - const auto& node = semantics_nodes_[node_index]; - if (!node.label.empty()) { - rapidjson::Value value; - value.SetString(node.label.data(), node.label.size()); - nodes_json.PushBack(value, nodes_json.GetAllocator()); - } - } - - if (nodes_json.Size() > 0) { - rapidjson::StringBuffer buffer; - rapidjson::Writer writer(buffer); - nodes_json.Accept(writer); - writer_->WriteEntityTopic("/inferred/accessibility_text", - buffer.GetString()); - } -} - -void ContextWriterBridge::UpdateVisitedForNodeAndChildren( - const int id, - std::vector* visited_nodes) { - std::map::const_iterator it = - semantics_nodes_.find(id); - if (it == semantics_nodes_.end()) { - return; - } - - visited_nodes->push_back(id); - for (const int child : it->second.childrenInTraversalOrder) { - UpdateVisitedForNodeAndChildren(child, visited_nodes); - } -} - -void ContextWriterBridge::EraseUnvisitedNodes( - const std::vector& visited_nodes) { - const std::unordered_set visited_nodes_lookup(visited_nodes.begin(), - visited_nodes.end()); - for (auto it = semantics_nodes_.begin(); it != semantics_nodes_.end();) { - if (visited_nodes_lookup.find((*it).first) == visited_nodes_lookup.end()) { - it = semantics_nodes_.erase(it); - } else { - ++it; - } - } -} - -} // namespace flutter_runner diff --git a/shell/platform/fuchsia/flutter/context_writer_bridge.h b/shell/platform/fuchsia/flutter/context_writer_bridge.h deleted file mode 100644 index 9c3d2f4a180..00000000000 --- a/shell/platform/fuchsia/flutter/context_writer_bridge.h +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#pragma once - -#include - -#include - -#include "flutter/fml/macros.h" -#include "flutter/lib/ui/semantics/semantics_node.h" - -namespace flutter_runner { - -// Maintain an up-to-date list of SemanticsNodes on screen, and communicate -// with the Context Service. -class ContextWriterBridge final { - public: - ContextWriterBridge( - fidl::InterfaceHandle writer); - - ~ContextWriterBridge(); - - // Update the internal representation of the semantics nodes, and write the - // semantics to Context Service. - void UpdateSemantics(const flutter::SemanticsNodeUpdates& update); - - private: - fuchsia::modular::ContextWriterPtr writer_; - std::map semantics_nodes_; - - // Walk the semantics node tree starting at |id|, and store the id of each - // visited child in |visited_nodes|. - void UpdateVisitedForNodeAndChildren(const int id, - std::vector* visited_nodes); - - // Remove any node from |semantics_nodes_| that doesn't have an id in - // |visited_nodes|. - void EraseUnvisitedNodes(const std::vector& visited_nodes); - - FML_DISALLOW_COPY_AND_ASSIGN(ContextWriterBridge); -}; - -} // namespace flutter_runner diff --git a/shell/platform/fuchsia/flutter/engine.cc b/shell/platform/fuchsia/flutter/engine.cc index 687ef213e7e..7c85458193d 100644 --- a/shell/platform/fuchsia/flutter/engine.cc +++ b/shell/platform/fuchsia/flutter/engine.cc @@ -80,12 +80,6 @@ Engine::Engine(Delegate& delegate, environment->GetServices(parent_environment_service_provider.NewRequest()); environment.Unbind(); - // Grab the accessibility context writer that can understand the semantics - // tree on the platform view. - fidl::InterfaceHandle - accessibility_context_writer; - svc->Connect(accessibility_context_writer.NewRequest()); - // We need to manually schedule a frame when the session metrics change. OnMetricsUpdate on_session_metrics_change_callback = std::bind( &Engine::OnSessionMetricsDidChange, this, std::placeholders::_1); @@ -120,8 +114,6 @@ Engine::Engine(Delegate& delegate, std::move(on_session_metrics_change_callback), on_session_size_change_hint_callback = std::move(on_session_size_change_hint_callback), - accessibility_context_writer = - std::move(accessibility_context_writer), vsync_handle = vsync_event_.get()](flutter::Shell& shell) mutable { return std::make_unique( shell, // delegate @@ -132,9 +124,7 @@ Engine::Engine(Delegate& delegate, std::move(on_session_listener_error_callback), std::move(on_session_metrics_change_callback), std::move(on_session_size_change_hint_callback), - std::move(accessibility_context_writer), // accessibility - // context writer - vsync_handle // vsync handle + vsync_handle // vsync handle ); }); diff --git a/shell/platform/fuchsia/flutter/platform_view.cc b/shell/platform/fuchsia/flutter/platform_view.cc index fbb0d8ea7a7..1157d1c7449 100644 --- a/shell/platform/fuchsia/flutter/platform_view.cc +++ b/shell/platform/fuchsia/flutter/platform_view.cc @@ -86,8 +86,6 @@ PlatformView::PlatformView( fit::closure session_listener_error_callback, OnMetricsUpdate session_metrics_did_change_callback, OnSizeChangeHint session_size_change_hint_callback, - fidl::InterfaceHandle - accessibility_context_writer, zx_handle_t vsync_event_handle) : flutter::PlatformView(delegate, std::move(task_runners)), debug_label_(std::move(debug_label)), @@ -97,7 +95,6 @@ PlatformView::PlatformView( metrics_changed_callback_(std::move(session_metrics_did_change_callback)), size_change_hint_callback_(std::move(session_size_change_hint_callback)), ime_client_(this), - context_writer_bridge_(std::move(accessibility_context_writer)), surface_(std::make_unique(debug_label_)), vsync_event_handle_(vsync_event_handle) { // Register all error handlers. @@ -595,9 +592,6 @@ void PlatformView::HandlePlatformMessage( void PlatformView::UpdateSemantics( flutter::SemanticsNodeUpdates update, flutter::CustomAccessibilityActionUpdates actions) { - // TODO(MI4-1262): Figure out if the context_writer_bridge should be removed - // as it is unused. - // context_writer_bridge_.UpdateSemantics(update); // TODO(MIT-1539): Uncomment/Reimplement following code, to add A11y support. // semantics_bridge_.UpdateSemantics(update); } diff --git a/shell/platform/fuchsia/flutter/platform_view.h b/shell/platform/fuchsia/flutter/platform_view.h index d30b124c80c..681f08f6aa0 100644 --- a/shell/platform/fuchsia/flutter/platform_view.h +++ b/shell/platform/fuchsia/flutter/platform_view.h @@ -20,7 +20,6 @@ #include "lib/fidl/cpp/binding.h" #include "lib/ui/scenic/cpp/id.h" -#include "context_writer_bridge.h" #include "surface.h" namespace flutter_runner { @@ -49,16 +48,12 @@ class PlatformView final : public flutter::PlatformView, fit::closure on_session_listener_error_callback, OnMetricsUpdate session_metrics_did_change_callback, OnSizeChangeHint session_size_change_hint_callback, - fidl::InterfaceHandle - accessibility_context_writer, zx_handle_t vsync_event_handle); PlatformView(PlatformView::Delegate& delegate, std::string debug_label, flutter::TaskRunners task_runners, fidl::InterfaceHandle parent_environment_service_provider, - fidl::InterfaceHandle - accessibility_context_writer, zx_handle_t vsync_event_handle); ~PlatformView(); @@ -80,7 +75,6 @@ class PlatformView final : public flutter::PlatformView, fuchsia::sys::ServiceProviderPtr parent_environment_service_provider_; fuchsia::modular::ClipboardPtr clipboard_; - ContextWriterBridge context_writer_bridge_; std::unique_ptr surface_; flutter::LogicalMetrics metrics_; fuchsia::ui::gfx::Metrics scenic_metrics_;