From b07e9faa35a939a20836332cdaffa608d60c08dc Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Fri, 13 Jul 2018 15:55:49 -0700 Subject: [PATCH] Revert "Add assistiveTechnologyEnabled flag to window" (flutter/engine#5746) Reverts flutter/engine#5740 --- engine/src/flutter/lib/ui/hooks.dart | 5 ---- engine/src/flutter/lib/ui/window.dart | 24 ------------------- engine/src/flutter/lib/ui/window/window.cc | 10 -------- engine/src/flutter/lib/ui/window/window.h | 1 - .../src/flutter/runtime/runtime_controller.cc | 13 +--------- .../src/flutter/runtime/runtime_controller.h | 3 --- engine/src/flutter/shell/common/engine.cc | 4 ---- engine/src/flutter/shell/common/engine.h | 2 -- .../src/flutter/shell/common/platform_view.cc | 4 ---- .../src/flutter/shell/common/platform_view.h | 5 ---- engine/src/flutter/shell/common/shell.cc | 14 ----------- engine/src/flutter/shell/common/shell.h | 4 ---- .../android/io/flutter/view/FlutterView.java | 5 ---- .../android/platform_view_android_jni.cc | 12 ---------- .../framework/Source/FlutterViewController.mm | 12 ++++------ .../platform/darwin/ios/platform_view_ios.h | 6 ----- .../platform/darwin/ios/platform_view_ios.mm | 11 --------- 17 files changed, 6 insertions(+), 129 deletions(-) diff --git a/engine/src/flutter/lib/ui/hooks.dart b/engine/src/flutter/lib/ui/hooks.dart index d889a19173..4f94a9ac96 100644 --- a/engine/src/flutter/lib/ui/hooks.dart +++ b/engine/src/flutter/lib/ui/hooks.dart @@ -70,11 +70,6 @@ void _updateSemanticsEnabled(bool enabled) { _invoke(window.onSemanticsEnabledChanged, window._onSemanticsEnabledChangedZone); } -void _updateAssistiveTechnologyEnabled(bool enabled) { - window._assistiveTechnologyEnabled = enabled; - _invoke(window._onAssistiveTechnologyEnabled, window._onAssistiveTechnologyEnabledZone); -} - void _dispatchPlatformMessage(String name, ByteData data, int responseId) { if (window.onPlatformMessage != null) { _invoke3( diff --git a/engine/src/flutter/lib/ui/window.dart b/engine/src/flutter/lib/ui/window.dart index 26ca82f6e9..f8dad72f15 100644 --- a/engine/src/flutter/lib/ui/window.dart +++ b/engine/src/flutter/lib/ui/window.dart @@ -637,30 +637,6 @@ class Window { bool get semanticsEnabled => _semanticsEnabled; bool _semanticsEnabled = false; - /// Whether the user is using assitive technologies to interact with the - /// application. - /// - /// This includes screen readers such as TalkBack on Android and VoiceOVer - /// on iOS, as well as hardware switches, and more. - /// - /// The [onAssistiveTechnologyEnabled] callback is called whenever this value - /// changes. - bool get assistiveTechnologyEnabled => _assistiveTechnologyEnabled; - bool _assistiveTechnologyEnabled = false; - - /// A callback that is invoked when the value of [assistiveTechnologyEnabled] - /// changes. - /// - /// The framework invokes this callback in the same zone in which the callback - /// was set. - VoidCallback get onAssistiveTechnologyEnabled => _onAssistiveTechnologyEnabled; - VoidCallback _onAssistiveTechnologyEnabled; - Zone _onAssistiveTechnologyEnabledZone; - set onAssistiveTechnologyEnabled(VoidCallback callback) { - _onAssistiveTechnologyEnabled = callback; - _onAssistiveTechnologyEnabledZone = Zone.current; - } - /// A callback that is invoked when the value of [semanticsEnabled] changes. /// /// The framework invokes this callback in the same zone in which the diff --git a/engine/src/flutter/lib/ui/window/window.cc b/engine/src/flutter/lib/ui/window/window.cc index e5bbdd73e1..5878dd26e4 100644 --- a/engine/src/flutter/lib/ui/window/window.cc +++ b/engine/src/flutter/lib/ui/window/window.cc @@ -199,16 +199,6 @@ void Window::UpdateSemanticsEnabled(bool enabled) { {ToDart(enabled)}); } -void Window::UpdateAssistiveTechnologyEnabled(bool enabled) { - tonic::DartState* dart_state = library_.dart_state().get(); - if (!dart_state) - return; - tonic::DartState::Scope scope(dart_state); - - DartInvokeField(library_.value(), "_updateAssistiveTechnologyEnabled", - {ToDart(enabled)}); -} - void Window::DispatchPlatformMessage(fxl::RefPtr message) { tonic::DartState* dart_state = library_.dart_state().get(); if (!dart_state) diff --git a/engine/src/flutter/lib/ui/window/window.h b/engine/src/flutter/lib/ui/window/window.h index e10fb8503a..892812a363 100644 --- a/engine/src/flutter/lib/ui/window/window.h +++ b/engine/src/flutter/lib/ui/window/window.h @@ -54,7 +54,6 @@ class Window final { const std::string& country_code); void UpdateUserSettingsData(const std::string& data); void UpdateSemanticsEnabled(bool enabled); - void UpdateAssistiveTechnologyEnabled(bool enabled); void DispatchPlatformMessage(fxl::RefPtr message); void DispatchPointerDataPacket(const PointerDataPacket& packet); void DispatchSemanticsAction(int32_t id, diff --git a/engine/src/flutter/runtime/runtime_controller.cc b/engine/src/flutter/runtime/runtime_controller.cc index 982d4d3cd6..d4c191b4a5 100644 --- a/engine/src/flutter/runtime/runtime_controller.cc +++ b/engine/src/flutter/runtime/runtime_controller.cc @@ -122,8 +122,7 @@ std::unique_ptr RuntimeController::Clone() const { bool RuntimeController::FlushRuntimeStateToIsolate() { return SetViewportMetrics(window_data_.viewport_metrics) && SetLocale(window_data_.language_code, window_data_.country_code) && - SetSemanticsEnabled(window_data_.semantics_enabled) && - SetAssistiveTechnologyEnabled(window_data_.assistive_technology_enabled); + SetSemanticsEnabled(window_data_.semantics_enabled); } bool RuntimeController::SetViewportMetrics(const ViewportMetrics& metrics) { @@ -171,16 +170,6 @@ bool RuntimeController::SetSemanticsEnabled(bool enabled) { return false; } -bool RuntimeController::SetAssistiveTechnologyEnabled(bool enabled) { - window_data_.assistive_technology_enabled = enabled; - if (auto window = GetWindowIfAvailable()) { - window->UpdateAssistiveTechnologyEnabled(window_data_.assistive_technology_enabled); - return true; - } - - return false; -} - bool RuntimeController::BeginFrame(fxl::TimePoint frame_time) { if (auto window = GetWindowIfAvailable()) { window->BeginFrame(frame_time); diff --git a/engine/src/flutter/runtime/runtime_controller.h b/engine/src/flutter/runtime/runtime_controller.h index ad9959091c..07ec70a912 100644 --- a/engine/src/flutter/runtime/runtime_controller.h +++ b/engine/src/flutter/runtime/runtime_controller.h @@ -47,8 +47,6 @@ class RuntimeController final : public WindowClient { bool SetSemanticsEnabled(bool enabled); - bool SetAssistiveTechnologyEnabled(bool enabled); - bool BeginFrame(fxl::TimePoint frame_time); bool NotifyIdle(int64_t deadline); @@ -82,7 +80,6 @@ class RuntimeController final : public WindowClient { std::string country_code; std::string user_settings_data = "{}"; bool semantics_enabled = false; - bool assistive_technology_enabled = false; }; RuntimeDelegate& client_; diff --git a/engine/src/flutter/shell/common/engine.cc b/engine/src/flutter/shell/common/engine.cc index 7765f594b4..3f8896a224 100644 --- a/engine/src/flutter/shell/common/engine.cc +++ b/engine/src/flutter/shell/common/engine.cc @@ -339,10 +339,6 @@ void Engine::SetSemanticsEnabled(bool enabled) { runtime_controller_->SetSemanticsEnabled(enabled); } -void Engine::SetAssistiveTechnologyEnabled(bool enabled) { - runtime_controller_->SetAssistiveTechnologyEnabled(enabled); -} - void Engine::StopAnimator() { animator_->Stop(); } diff --git a/engine/src/flutter/shell/common/engine.h b/engine/src/flutter/shell/common/engine.h index 79b2075566..eeacfc4b84 100644 --- a/engine/src/flutter/shell/common/engine.h +++ b/engine/src/flutter/shell/common/engine.h @@ -99,8 +99,6 @@ class Engine final : public blink::RuntimeDelegate { void SetSemanticsEnabled(bool enabled); - void SetAssistiveTechnologyEnabled(bool enabled); - void ScheduleFrame(bool regenerate_layer_tree = true) override; // |blink::RuntimeDelegate| diff --git a/engine/src/flutter/shell/common/platform_view.cc b/engine/src/flutter/shell/common/platform_view.cc index e1aaf5d858..cb84fbcedd 100644 --- a/engine/src/flutter/shell/common/platform_view.cc +++ b/engine/src/flutter/shell/common/platform_view.cc @@ -52,10 +52,6 @@ void PlatformView::SetSemanticsEnabled(bool enabled) { delegate_.OnPlatformViewSetSemanticsEnabled(*this, enabled); } -void PlatformView::SetAssistiveTechnologyEnabled(bool enabled) { - delegate_.OnPlatformViewSetAssistiveTechnologyEnabled(*this, enabled); -} - void PlatformView::SetViewportMetrics(const blink::ViewportMetrics& metrics) { delegate_.OnPlatformViewSetViewportMetrics(*this, metrics); } diff --git a/engine/src/flutter/shell/common/platform_view.h b/engine/src/flutter/shell/common/platform_view.h index 02e942fa44..8273563f13 100644 --- a/engine/src/flutter/shell/common/platform_view.h +++ b/engine/src/flutter/shell/common/platform_view.h @@ -58,9 +58,6 @@ class PlatformView { virtual void OnPlatformViewSetSemanticsEnabled(const PlatformView& view, bool enabled) = 0; - virtual void OnPlatformViewSetAssistiveTechnologyEnabled(const PlatformView& view, - bool enabled) = 0; - virtual void OnPlatformViewRegisterTexture( const PlatformView& view, std::shared_ptr texture) = 0; @@ -87,8 +84,6 @@ class PlatformView { virtual void SetSemanticsEnabled(bool enabled); - virtual void SetAssistiveTechnologyEnabled(bool enabled); - void SetViewportMetrics(const blink::ViewportMetrics& metrics); void NotifyCreated(); diff --git a/engine/src/flutter/shell/common/shell.cc b/engine/src/flutter/shell/common/shell.cc index 43c769142d..e6cb6fc10a 100644 --- a/engine/src/flutter/shell/common/shell.cc +++ b/engine/src/flutter/shell/common/shell.cc @@ -574,20 +574,6 @@ void Shell::OnPlatformViewSetSemanticsEnabled(const PlatformView& view, }); } -void Shell::OnPlatformViewSetAssistiveTechnologyEnabled(const PlatformView& view, - bool enabled) { - FXL_DCHECK(is_setup_); - FXL_DCHECK(&view == platform_view_.get()); - FXL_DCHECK(task_runners_.GetPlatformTaskRunner()->RunsTasksOnCurrentThread()); - - task_runners_.GetUITaskRunner()->PostTask( - [engine = engine_->GetWeakPtr(), enabled] { - if (engine) { - engine->SetAssistiveTechnologyEnabled(enabled); - } - }); -} - // |shell::PlatformView::Delegate| void Shell::OnPlatformViewRegisterTexture( const PlatformView& view, diff --git a/engine/src/flutter/shell/common/shell.h b/engine/src/flutter/shell/common/shell.h index 2aa98bb1d6..8f12bf0ae6 100644 --- a/engine/src/flutter/shell/common/shell.h +++ b/engine/src/flutter/shell/common/shell.h @@ -149,10 +149,6 @@ class Shell final : public PlatformView::Delegate, void OnPlatformViewSetSemanticsEnabled(const PlatformView& view, bool enabled) override; - // |shell::PlatformView::Delegate| - void OnPlatformViewSetAssistiveTechnologyEnabled(const PlatformView& view, - bool enabled) override; - // |shell::PlatformView::Delegate| void OnPlatformViewRegisterTexture( const PlatformView& view, diff --git a/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterView.java b/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterView.java index 66e4bde3d5..8974a0bec5 100644 --- a/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterView.java +++ b/engine/src/flutter/shell/platform/android/io/flutter/view/FlutterView.java @@ -669,9 +669,6 @@ public class FlutterView extends SurfaceView private static native void nativeSetSemanticsEnabled(long nativePlatformViewAndroid, boolean enabled); - - private static native void nativeSetAssistiveTechnologyEnabled(long nativePlatformViewAndroid, - boolean enabled); private static native boolean nativeGetIsSoftwareRenderingEnabled(); @@ -815,13 +812,11 @@ public class FlutterView extends SurfaceView if (enabled) { mTouchExplorationEnabled = true; ensureAccessibilityEnabled(); - nativeSetAssistiveTechnologyEnabled(mNativeView.get(), true); } else { mTouchExplorationEnabled = false; if (mAccessibilityNodeProvider != null) { mAccessibilityNodeProvider.handleTouchExplorationExit(); } - nativeSetAssistiveTechnologyEnabled(mNativeView.get(), false); } resetWillNotDraw(); } diff --git a/engine/src/flutter/shell/platform/android/platform_view_android_jni.cc b/engine/src/flutter/shell/platform/android/platform_view_android_jni.cc index 24c229581d..0fe2af1c50 100644 --- a/engine/src/flutter/shell/platform/android/platform_view_android_jni.cc +++ b/engine/src/flutter/shell/platform/android/platform_view_android_jni.cc @@ -429,13 +429,6 @@ static void SetSemanticsEnabled(JNIEnv* env, ANDROID_SHELL_HOLDER->GetPlatformView()->SetSemanticsEnabled(enabled); } -static void SetAssistiveTechnologyEnabled(JNIEnv* env, - jobject jcaller, - jlong shell_holder, - jboolean enabled) { - ANDROID_SHELL_HOLDER->GetPlatformView()->SetAssistiveTechnologyEnabled(enabled); -} - static jboolean GetIsSoftwareRendering(JNIEnv* env, jobject jcaller) { return FlutterMain::Get().GetSettings().enable_software_rendering; } @@ -607,11 +600,6 @@ bool PlatformViewAndroid::Register(JNIEnv* env) { .signature = "(JZ)V", .fnPtr = reinterpret_cast(&shell::SetSemanticsEnabled), }, - { - .name = "nativeSetAssistiveTechnologyEnabled", - .signature = "(JZ)V", - .fnPtr = reinterpret_cast(&shell::SetAssistiveTechnologyEnabled), - }, { .name = "nativeGetIsSoftwareRenderingEnabled", .signature = "()Z", diff --git a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm index d77c6bd397..252d5e61e4 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm @@ -792,18 +792,16 @@ static inline blink::PointerData::DeviceKind DeviceKindFromTouchType(UITouch* to #pragma mark - Accessibility - (void)onAccessibilityStatusChanged:(NSNotification*)notification { - auto platformView = _shell->GetPlatformView(); #if TARGET_OS_SIMULATOR // There doesn't appear to be any way to determine whether the accessibility // inspector is enabled on the simulator. We conservatively always turn on the - // accessibility bridge in the simulator, but never assistive technology. - platformView->SetSemanticsEnabled(true); - platformView->SetAssistiveTechnologyEnabled(false); + // accessibility bridge in the simulator. + bool enabled = true; #else - bool enabled = UIAccessibilityIsVoiceOverRunning() || UIAccessibilityIsSwitchControlRunning(); - platformView->SetSemanticsEnabled(enabled || UIAccessibilityIsSpeakScreenEnabled()); - platformView->SetAssistiveTechnologyEnabled(enabled); + bool enabled = UIAccessibilityIsVoiceOverRunning() || UIAccessibilityIsSwitchControlRunning() || + UIAccessibilityIsSpeakScreenEnabled(); #endif + _shell->GetPlatformView()->SetSemanticsEnabled(enabled); } #pragma mark - Memory Notifications diff --git a/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.h b/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.h index 9bd758b55f..8d1de7a0c0 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.h +++ b/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.h @@ -57,12 +57,6 @@ class PlatformViewIOS final : public HeadlessPlatformViewIOS { // |shell::PlatformView| void SetSemanticsEnabled(bool enabled) override; - // |shell::PlatformView| - void SetAssistiveTechnologyEnabled(bool enabled) override; - - // |shell::PlatformView| - void HandlePlatformMessage( - fxl::RefPtr message) override; // |shell::PlatformView| void UpdateSemantics(blink::SemanticsNodeUpdates update, diff --git a/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.mm b/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.mm index df960dc2fd..f1cfc70e35 100644 --- a/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.mm +++ b/engine/src/flutter/shell/platform/darwin/ios/platform_view_ios.mm @@ -67,17 +67,6 @@ void PlatformViewIOS::SetSemanticsEnabled(bool enabled) { PlatformView::SetSemanticsEnabled(enabled); } -// |shell:PlatformView| -void PlatformViewIOS::SetAssistiveTechnologyEnabled(bool enabled) { - if (enabled && !accessibility_bridge_) { - accessibility_bridge_ = std::make_unique(owner_view_, this); - } - // Note: since the accessibility bridge is needed for both semantics and - // assistive technologies, but you cannot have the latter without the - // former, we only destroy the bridge in SetSemanticsEnabled and not here. - PlatformView::SetAssistiveTechnologyEnabled(enabled); -} - // |shell::PlatformView| void PlatformViewIOS::UpdateSemantics(blink::SemanticsNodeUpdates update, blink::CustomAccessibilityActionUpdates actions) {