Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions shell/platform/windows/accessibility_bridge_windows_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -178,9 +178,9 @@ ui::AXNode* AXNodeFromID(std::shared_ptr<AccessibilityBridge> bridge,
}

std::shared_ptr<AccessibilityBridgeWindowsSpy> GetAccessibilityBridgeSpy(
FlutterWindowsEngine* engine) {
FlutterWindowsView& view) {
return std::static_pointer_cast<AccessibilityBridgeWindowsSpy>(
engine->accessibility_bridge().lock());
view.accessibility_bridge().lock());
}

void ExpectWinEventFromAXEvent(int32_t node_id,
Expand All @@ -192,7 +192,7 @@ void ExpectWinEventFromAXEvent(int32_t node_id,
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = GetAccessibilityBridgeSpy(view.GetEngine());
auto bridge = GetAccessibilityBridgeSpy(view);
PopulateAXTree(bridge);

bridge->ResetRecords();
Expand All @@ -212,7 +212,7 @@ void ExpectWinEventFromAXEventOnFocusNode(int32_t node_id,
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = GetAccessibilityBridgeSpy(view.GetEngine());
auto bridge = GetAccessibilityBridgeSpy(view);
PopulateAXTree(bridge);

bridge->ResetRecords();
Expand All @@ -237,7 +237,7 @@ TEST(AccessibilityBridgeWindows, GetParent) {
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
PopulateAXTree(bridge);

auto node0_delegate = bridge->GetFlutterPlatformNodeDelegateFromID(0).lock();
Expand All @@ -253,7 +253,7 @@ TEST(AccessibilityBridgeWindows, GetParentOnRootRetunsNullptr) {
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
PopulateAXTree(bridge);

auto node0_delegate = bridge->GetFlutterPlatformNodeDelegateFromID(0).lock();
Expand All @@ -267,7 +267,7 @@ TEST(AccessibilityBridgeWindows, DispatchAccessibilityAction) {
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
PopulateAXTree(bridge);

FlutterSemanticsAction actual_action = kFlutterSemanticsActionTap;
Expand Down Expand Up @@ -303,7 +303,7 @@ TEST(AccessibilityBridgeWindows, OnAccessibilityEventFocusChanged) {
view.SetEngine(GetTestEngine());
view.OnUpdateSemanticsEnabled(true);

auto bridge = GetAccessibilityBridgeSpy(view.GetEngine());
auto bridge = GetAccessibilityBridgeSpy(view);
PopulateAXTree(bridge);

bridge->ResetRecords();
Expand Down
21 changes: 6 additions & 15 deletions shell/platform/windows/flutter_windows_engine.cc
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,12 @@ bool FlutterWindowsEngine::Run(std::string_view entrypoint) {
args.update_semantics_callback2 = [](const FlutterSemanticsUpdate2* update,
void* user_data) {
auto host = static_cast<FlutterWindowsEngine*>(user_data);
auto accessibility_bridge = host->accessibility_bridge().lock();
auto view = host->view();
if (!view) {
return;
}

auto accessibility_bridge = view->accessibility_bridge().lock();
if (!accessibility_bridge) {
return;
}
Expand Down Expand Up @@ -704,15 +709,6 @@ void FlutterWindowsEngine::OnPreEngineRestart() {
}
}

gfx::NativeViewAccessible FlutterWindowsEngine::GetNativeViewAccessible() {
auto bridge = accessibility_bridge().lock();
if (!bridge) {
return nullptr;
}

return bridge->GetChildOfAXFragmentRoot();
}

std::string FlutterWindowsEngine::GetExecutableName() const {
std::pair<bool, std::string> result = fml::paths::GetExecutablePath();
if (result.first) {
Expand Down Expand Up @@ -792,11 +788,6 @@ void FlutterWindowsEngine::OnQuit(std::optional<HWND> hwnd,
lifecycle_manager_->Quit(hwnd, wparam, lparam, exit_code);
}

std::weak_ptr<AccessibilityBridgeWindows>
FlutterWindowsEngine::accessibility_bridge() {
return view_->accessibility_bridge();
}

void FlutterWindowsEngine::OnDwmCompositionChanged() {
view_->OnDwmCompositionChanged();
}
Expand Down
7 changes: 0 additions & 7 deletions shell/platform/windows/flutter_windows_engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,6 @@ class FlutterWindowsEngine {
// rendering using software instead of OpenGL.
AngleSurfaceManager* surface_manager() { return surface_manager_.get(); }

// Return the AccessibilityBridgeWindows for this engine's view.
std::weak_ptr<AccessibilityBridgeWindows> accessibility_bridge();

WindowProcDelegateManager* window_proc_delegate_manager() {
return window_proc_delegate_manager_.get();
}
Expand Down Expand Up @@ -227,10 +224,6 @@ class FlutterWindowsEngine {
// Returns true if the high contrast feature is enabled.
bool high_contrast_enabled() const { return high_contrast_enabled_; }

// Returns the native accessibility root node, or nullptr if one does not
// exist.
gfx::NativeViewAccessible GetNativeViewAccessible();

// Register a root isolate create callback.
//
// The root isolate create callback is invoked at creation of the root Dart
Expand Down
8 changes: 6 additions & 2 deletions shell/platform/windows/flutter_windows_view.cc
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,11 @@ void FlutterWindowsView::OnUpdateSemanticsEnabled(bool enabled) {
}

gfx::NativeViewAccessible FlutterWindowsView::GetNativeViewAccessible() {
return engine_->GetNativeViewAccessible();
if (!accessibility_bridge_) {
return nullptr;
}

return accessibility_bridge_->GetChildOfAXFragmentRoot();
}

void FlutterWindowsView::OnCursorRectUpdated(const Rect& rect) {
Expand Down Expand Up @@ -639,7 +643,7 @@ void FlutterWindowsView::NotifyWinEventWrapper(ui::AXPlatformNodeWin* node,
}

ui::AXFragmentRootDelegateWin* FlutterWindowsView::GetAxFragmentRootDelegate() {
return engine_->accessibility_bridge().lock().get();
return accessibility_bridge_.get();
}

ui::AXPlatformNodeWin* FlutterWindowsView::AlertNode() const {
Expand Down
14 changes: 7 additions & 7 deletions shell/platform/windows/flutter_windows_view_unittests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ TEST(FlutterWindowsViewTest, AddSemanticsNodeUpdate) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

// Add root node.
Expand Down Expand Up @@ -311,7 +311,7 @@ TEST(FlutterWindowsViewTest, AddSemanticsNodeUpdateWithChildren) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

// Add root node.
Expand Down Expand Up @@ -509,7 +509,7 @@ TEST(FlutterWindowsViewTest, NonZeroSemanticsRoot) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

// Add root node.
Expand Down Expand Up @@ -641,7 +641,7 @@ TEST(FlutterWindowsViewTest, AccessibilityHitTesting) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

// Add root node at origin. Size 500x500.
Expand Down Expand Up @@ -802,7 +802,7 @@ TEST(FlutterWindowsViewTest, CheckboxNativeState) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

FlutterSemanticsNode2 root{sizeof(FlutterSemanticsNode2), 0};
Expand Down Expand Up @@ -948,7 +948,7 @@ TEST(FlutterWindowsViewTest, SwitchNativeState) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

FlutterSemanticsNode2 root{sizeof(FlutterSemanticsNode2), 0};
Expand Down Expand Up @@ -1065,7 +1065,7 @@ TEST(FlutterWindowsViewTest, TooltipNodeData) {
// Enable semantics to instantiate accessibility bridge.
view.OnUpdateSemanticsEnabled(true);

auto bridge = view.GetEngine()->accessibility_bridge().lock();
auto bridge = view.accessibility_bridge().lock();
ASSERT_TRUE(bridge);

FlutterSemanticsNode2 root{sizeof(FlutterSemanticsNode2), 0};
Expand Down