Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 119c05b

Browse files
committed
Complete the update semantics embedder API migration
The old "update semantics" embedder API was deprecated as it could not guarantee ABI stability (see flutter/flutter#121176). It was replaced by a new embedder API (#39807) and all affected embedders were migrated to this new embedder API (#40072, #40584). This change: 1. Removes plumbing that was used for the old "update semantics" embedder API 2. Moves all remaining tests to the types used by the new "update semantics" embedder API Completes: flutter/flutter#121176
1 parent 89c1b23 commit 119c05b

7 files changed

Lines changed: 74 additions & 195 deletions

shell/platform/common/accessibility_bridge.cc

Lines changed: 0 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,6 @@ void AccessibilityBridge::AddFlutterSemanticsCustomActionUpdate(
4747
FromFlutterSemanticsCustomAction(action);
4848
}
4949

50-
// TODO(loicsharma): Remove this as FlutterSemanticsNode is deprecated.
51-
// See: https://github.com/flutter/flutter/issues/121176
52-
void AccessibilityBridge::AddFlutterSemanticsNodeUpdate(
53-
const FlutterSemanticsNode& node) {
54-
pending_semantics_node_updates_[node.id] = FromFlutterSemanticsNode(node);
55-
}
56-
57-
// TODO(loicsharma): Remove this as FlutterSemanticsNode is deprecated.
58-
// See: https://github.com/flutter/flutter/issues/121176
59-
void AccessibilityBridge::AddFlutterSemanticsCustomActionUpdate(
60-
const FlutterSemanticsCustomAction& action) {
61-
pending_semantics_custom_action_updates_[action.id] =
62-
FromFlutterSemanticsCustomAction(action);
63-
}
64-
6550
void AccessibilityBridge::CommitUpdates() {
6651
// AXTree cannot move a node in a single update.
6752
// This must be split across two updates:
@@ -657,77 +642,6 @@ AccessibilityBridge::FromFlutterSemanticsCustomAction(
657642
return result;
658643
}
659644

660-
// TODO(loicsharma): Remove this as FlutterSemanticsNode is deprecated.
661-
// See: https://github.com/flutter/flutter/issues/121176
662-
AccessibilityBridge::SemanticsNode
663-
AccessibilityBridge::FromFlutterSemanticsNode(
664-
const FlutterSemanticsNode& flutter_node) {
665-
SemanticsNode result;
666-
result.id = flutter_node.id;
667-
result.flags = flutter_node.flags;
668-
result.actions = flutter_node.actions;
669-
result.text_selection_base = flutter_node.text_selection_base;
670-
result.text_selection_extent = flutter_node.text_selection_extent;
671-
result.scroll_child_count = flutter_node.scroll_child_count;
672-
result.scroll_index = flutter_node.scroll_index;
673-
result.scroll_position = flutter_node.scroll_position;
674-
result.scroll_extent_max = flutter_node.scroll_extent_max;
675-
result.scroll_extent_min = flutter_node.scroll_extent_min;
676-
result.elevation = flutter_node.elevation;
677-
result.thickness = flutter_node.thickness;
678-
if (flutter_node.label) {
679-
result.label = std::string(flutter_node.label);
680-
}
681-
if (flutter_node.hint) {
682-
result.hint = std::string(flutter_node.hint);
683-
}
684-
if (flutter_node.value) {
685-
result.value = std::string(flutter_node.value);
686-
}
687-
if (flutter_node.increased_value) {
688-
result.increased_value = std::string(flutter_node.increased_value);
689-
}
690-
if (flutter_node.decreased_value) {
691-
result.decreased_value = std::string(flutter_node.decreased_value);
692-
}
693-
if (flutter_node.tooltip) {
694-
result.tooltip = std::string(flutter_node.tooltip);
695-
}
696-
result.text_direction = flutter_node.text_direction;
697-
result.rect = flutter_node.rect;
698-
result.transform = flutter_node.transform;
699-
if (flutter_node.child_count > 0) {
700-
result.children_in_traversal_order = std::vector<int32_t>(
701-
flutter_node.children_in_traversal_order,
702-
flutter_node.children_in_traversal_order + flutter_node.child_count);
703-
}
704-
if (flutter_node.custom_accessibility_actions_count > 0) {
705-
result.custom_accessibility_actions = std::vector<int32_t>(
706-
flutter_node.custom_accessibility_actions,
707-
flutter_node.custom_accessibility_actions +
708-
flutter_node.custom_accessibility_actions_count);
709-
}
710-
return result;
711-
}
712-
713-
// TODO(loicsharma): Remove this as FlutterSemanticsCustomAction is
714-
// deprecated.
715-
// See: https://github.com/flutter/flutter/issues/121176
716-
AccessibilityBridge::SemanticsCustomAction
717-
AccessibilityBridge::FromFlutterSemanticsCustomAction(
718-
const FlutterSemanticsCustomAction& flutter_custom_action) {
719-
SemanticsCustomAction result;
720-
result.id = flutter_custom_action.id;
721-
result.override_action = flutter_custom_action.override_action;
722-
if (flutter_custom_action.label) {
723-
result.label = std::string(flutter_custom_action.label);
724-
}
725-
if (flutter_custom_action.hint) {
726-
result.hint = std::string(flutter_custom_action.hint);
727-
}
728-
return result;
729-
}
730-
731645
void AccessibilityBridge::SetLastFocusedId(AccessibilityNodeId node_id) {
732646
if (last_focused_id_ != node_id) {
733647
auto last_focused_child =

shell/platform/common/accessibility_bridge.h

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -67,30 +67,6 @@ class AccessibilityBridge
6767
void AddFlutterSemanticsCustomActionUpdate(
6868
const FlutterSemanticsCustomAction2& action);
6969

70-
//------------------------------------------------------------------------------
71-
/// @brief Adds a semantics node update to the pending semantics update.
72-
/// Calling this method alone will NOT update the semantics tree.
73-
/// To flush the pending updates, call the CommitUpdates().
74-
///
75-
/// @param[in] node A reference to the semantics node update.
76-
// TODO(loicsharma): Remove this as FlutterSemanticsNode is deprecated.
77-
// See: https://github.com/flutter/flutter/issues/121176
78-
void AddFlutterSemanticsNodeUpdate(const FlutterSemanticsNode& node);
79-
80-
//------------------------------------------------------------------------------
81-
/// @brief Adds a custom semantics action update to the pending semantics
82-
/// update. Calling this method alone will NOT update the
83-
/// semantics tree. To flush the pending updates, call the
84-
/// CommitUpdates().
85-
///
86-
/// @param[in] action A reference to the custom semantics action
87-
/// update.
88-
// TODO(loicsharma): Remove this as FlutterSemanticsCustomAction is
89-
// deprecated.
90-
// See: https://github.com/flutter/flutter/issues/121176
91-
void AddFlutterSemanticsCustomActionUpdate(
92-
const FlutterSemanticsCustomAction& action);
93-
9470
//------------------------------------------------------------------------------
9571
/// @brief Flushes the pending updates and applies them to this
9672
/// accessibility bridge. Calling this with no pending updates
@@ -273,17 +249,6 @@ class AccessibilityBridge
273249
SemanticsCustomAction FromFlutterSemanticsCustomAction(
274250
const FlutterSemanticsCustomAction2& flutter_custom_action);
275251

276-
// TODO(loicsharma): Remove this as FlutterSemanticsNode is deprecated.
277-
// See: https://github.com/flutter/flutter/issues/121176
278-
SemanticsNode FromFlutterSemanticsNode(
279-
const FlutterSemanticsNode& flutter_node);
280-
281-
// TODO(loicsharma): Remove this as FlutterSemanticsCustomAction is
282-
// deprecated.
283-
// See: https://github.com/flutter/flutter/issues/121176
284-
SemanticsCustomAction FromFlutterSemanticsCustomAction(
285-
const FlutterSemanticsCustomAction& flutter_custom_action);
286-
287252
// |AXTreeObserver|
288253
void OnNodeWillBeDeleted(ui::AXTree* tree, ui::AXNode* node) override;
289254

shell/platform/common/accessibility_bridge_unittests.cc

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace testing {
1515

1616
using ::testing::Contains;
1717

18-
FlutterSemanticsNode CreateSemanticsNode(
18+
FlutterSemanticsNode2 CreateSemanticsNode(
1919
int32_t id,
2020
const char* label,
2121
const std::vector<int32_t>* children = nullptr) {
@@ -42,9 +42,9 @@ TEST(AccessibilityBridgeTest, BasicTest) {
4242
std::make_shared<TestAccessibilityBridge>();
4343

4444
std::vector<int32_t> children{1, 2};
45-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root", &children);
46-
FlutterSemanticsNode child1 = CreateSemanticsNode(1, "child 1");
47-
FlutterSemanticsNode child2 = CreateSemanticsNode(2, "child 2");
45+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root", &children);
46+
FlutterSemanticsNode2 child1 = CreateSemanticsNode(1, "child 1");
47+
FlutterSemanticsNode2 child2 = CreateSemanticsNode(2, "child 2");
4848

4949
bridge->AddFlutterSemanticsNodeUpdate(root);
5050
bridge->AddFlutterSemanticsNodeUpdate(child1);
@@ -74,9 +74,9 @@ TEST(AccessibilityBridgeTest, AccessibilityRootId) {
7474
std::make_shared<TestAccessibilityBridge>();
7575

7676
std::vector<int32_t> children{456, 789};
77-
FlutterSemanticsNode root = CreateSemanticsNode(123, "root", &children);
78-
FlutterSemanticsNode child1 = CreateSemanticsNode(456, "child 1");
79-
FlutterSemanticsNode child2 = CreateSemanticsNode(789, "child 2");
77+
FlutterSemanticsNode2 root = CreateSemanticsNode(123, "root", &children);
78+
FlutterSemanticsNode2 child1 = CreateSemanticsNode(456, "child 1");
79+
FlutterSemanticsNode2 child2 = CreateSemanticsNode(789, "child 2");
8080

8181
bridge->AddFlutterSemanticsNodeUpdate(root);
8282
bridge->AddFlutterSemanticsNodeUpdate(child1);
@@ -113,13 +113,13 @@ TEST(AccessibilityBridgeTest, AddOrder) {
113113
std::vector<int32_t> root_children{34, 56};
114114
std::vector<int32_t> child2_children{78};
115115
std::vector<int32_t> child3_children{90};
116-
FlutterSemanticsNode root = CreateSemanticsNode(12, "root", &root_children);
117-
FlutterSemanticsNode child1 = CreateSemanticsNode(34, "child 1");
118-
FlutterSemanticsNode child2 =
116+
FlutterSemanticsNode2 root = CreateSemanticsNode(12, "root", &root_children);
117+
FlutterSemanticsNode2 child1 = CreateSemanticsNode(34, "child 1");
118+
FlutterSemanticsNode2 child2 =
119119
CreateSemanticsNode(56, "child 2", &child2_children);
120-
FlutterSemanticsNode child3 =
120+
FlutterSemanticsNode2 child3 =
121121
CreateSemanticsNode(78, "child 3", &child3_children);
122-
FlutterSemanticsNode child4 = CreateSemanticsNode(90, "child 4");
122+
FlutterSemanticsNode2 child4 = CreateSemanticsNode(90, "child 4");
123123

124124
bridge->AddFlutterSemanticsNodeUpdate(child3);
125125
bridge->AddFlutterSemanticsNodeUpdate(child2);
@@ -162,8 +162,8 @@ TEST(AccessibilityBridgeTest, CanFireChildrenChangedCorrectly) {
162162
std::make_shared<TestAccessibilityBridge>();
163163

164164
std::vector<int32_t> children{1};
165-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root", &children);
166-
FlutterSemanticsNode child1 = CreateSemanticsNode(1, "child 1");
165+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root", &children);
166+
FlutterSemanticsNode2 child1 = CreateSemanticsNode(1, "child 1");
167167

168168
bridge->AddFlutterSemanticsNodeUpdate(root);
169169
bridge->AddFlutterSemanticsNodeUpdate(child1);
@@ -185,7 +185,7 @@ TEST(AccessibilityBridgeTest, CanFireChildrenChangedCorrectly) {
185185
int32_t new_children[] = {1, 2};
186186
root.children_in_traversal_order = new_children;
187187

188-
FlutterSemanticsNode child2 = CreateSemanticsNode(2, "child 2");
188+
FlutterSemanticsNode2 child2 = CreateSemanticsNode(2, "child 2");
189189

190190
bridge->AddFlutterSemanticsNodeUpdate(root);
191191
bridge->AddFlutterSemanticsNodeUpdate(child2);
@@ -210,8 +210,8 @@ TEST(AccessibilityBridgeTest, CanRecreateNodeDelegates) {
210210
std::make_shared<TestAccessibilityBridge>();
211211

212212
std::vector<int32_t> children{1};
213-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root", &children);
214-
FlutterSemanticsNode child1 = CreateSemanticsNode(1, "child 1");
213+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root", &children);
214+
FlutterSemanticsNode2 child1 = CreateSemanticsNode(1, "child 1");
215215

216216
bridge->AddFlutterSemanticsNodeUpdate(root);
217217
bridge->AddFlutterSemanticsNodeUpdate(child1);
@@ -242,7 +242,7 @@ TEST(AccessibilityBridgeTest, CanRecreateNodeDelegates) {
242242
TEST(AccessibilityBridgeTest, CanHandleSelectionChangeCorrectly) {
243243
std::shared_ptr<TestAccessibilityBridge> bridge =
244244
std::make_shared<TestAccessibilityBridge>();
245-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root");
245+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root");
246246
root.flags = static_cast<FlutterSemanticsFlag>(
247247
FlutterSemanticsFlag::kFlutterSemanticsFlagIsTextField |
248248
FlutterSemanticsFlag::kFlutterSemanticsFlagIsFocused);
@@ -274,7 +274,7 @@ TEST(AccessibilityBridgeTest, CanHandleSelectionChangeCorrectly) {
274274
TEST(AccessibilityBridgeTest, DoesNotAssignEditableRootToSelectableText) {
275275
std::shared_ptr<TestAccessibilityBridge> bridge =
276276
std::make_shared<TestAccessibilityBridge>();
277-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root");
277+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root");
278278
root.flags = static_cast<FlutterSemanticsFlag>(
279279
FlutterSemanticsFlag::kFlutterSemanticsFlagIsTextField |
280280
FlutterSemanticsFlag::kFlutterSemanticsFlagIsReadOnly);
@@ -290,7 +290,7 @@ TEST(AccessibilityBridgeTest, DoesNotAssignEditableRootToSelectableText) {
290290
TEST(AccessibilityBridgeTest, ToggleHasToggleButtonRole) {
291291
std::shared_ptr<TestAccessibilityBridge> bridge =
292292
std::make_shared<TestAccessibilityBridge>();
293-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root");
293+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root");
294294
root.flags = static_cast<FlutterSemanticsFlag>(
295295
FlutterSemanticsFlag::kFlutterSemanticsFlagHasToggledState |
296296
FlutterSemanticsFlag::kFlutterSemanticsFlagHasEnabledState |
@@ -305,7 +305,7 @@ TEST(AccessibilityBridgeTest, ToggleHasToggleButtonRole) {
305305
TEST(AccessibilityBridgeTest, SliderHasSliderRole) {
306306
std::shared_ptr<TestAccessibilityBridge> bridge =
307307
std::make_shared<TestAccessibilityBridge>();
308-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root");
308+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root");
309309
root.flags = static_cast<FlutterSemanticsFlag>(
310310
FlutterSemanticsFlag::kFlutterSemanticsFlagIsSlider |
311311
FlutterSemanticsFlag::kFlutterSemanticsFlagHasEnabledState |
@@ -326,7 +326,7 @@ TEST(AccessibilityBridgeTest, SliderHasSliderRole) {
326326
TEST(AccessibilityBridgeTest, CanSetCheckboxChecked) {
327327
std::shared_ptr<TestAccessibilityBridge> bridge =
328328
std::make_shared<TestAccessibilityBridge>();
329-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root");
329+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root");
330330
root.flags = static_cast<FlutterSemanticsFlag>(
331331
FlutterSemanticsFlag::kFlutterSemanticsFlagHasCheckedState |
332332
FlutterSemanticsFlag::kFlutterSemanticsFlagIsChecked);
@@ -346,10 +346,10 @@ TEST(AccessibilityBridgeTest, CanReparentNode) {
346346

347347
std::vector<int32_t> root_children{1};
348348
std::vector<int32_t> child1_children{2};
349-
FlutterSemanticsNode root = CreateSemanticsNode(0, "root", &root_children);
350-
FlutterSemanticsNode child1 =
349+
FlutterSemanticsNode2 root = CreateSemanticsNode(0, "root", &root_children);
350+
FlutterSemanticsNode2 child1 =
351351
CreateSemanticsNode(1, "child 1", &child1_children);
352-
FlutterSemanticsNode child2 = CreateSemanticsNode(2, "child 2");
352+
FlutterSemanticsNode2 child2 = CreateSemanticsNode(2, "child 2");
353353

354354
bridge->AddFlutterSemanticsNodeUpdate(root);
355355
bridge->AddFlutterSemanticsNodeUpdate(child1);
@@ -417,15 +417,15 @@ TEST(AccessibilityBridgeTest, CanReparentMultipleNodes) {
417417
std::vector<int32_t> root_children{intermediary1_id, intermediary2_id};
418418
std::vector<int32_t> intermediary1_children{leaf1_id};
419419
std::vector<int32_t> intermediary2_children{leaf2_id, leaf3_id};
420-
FlutterSemanticsNode root =
420+
FlutterSemanticsNode2 root =
421421
CreateSemanticsNode(root_id, "root", &root_children);
422-
FlutterSemanticsNode intermediary1 = CreateSemanticsNode(
422+
FlutterSemanticsNode2 intermediary1 = CreateSemanticsNode(
423423
intermediary1_id, "intermediary 1", &intermediary1_children);
424-
FlutterSemanticsNode intermediary2 = CreateSemanticsNode(
424+
FlutterSemanticsNode2 intermediary2 = CreateSemanticsNode(
425425
intermediary2_id, "intermediary 2", &intermediary2_children);
426-
FlutterSemanticsNode leaf1 = CreateSemanticsNode(leaf1_id, "leaf 1");
427-
FlutterSemanticsNode leaf2 = CreateSemanticsNode(leaf2_id, "leaf 2");
428-
FlutterSemanticsNode leaf3 = CreateSemanticsNode(leaf3_id, "leaf 3");
426+
FlutterSemanticsNode2 leaf1 = CreateSemanticsNode(leaf1_id, "leaf 1");
427+
FlutterSemanticsNode2 leaf2 = CreateSemanticsNode(leaf2_id, "leaf 2");
428+
FlutterSemanticsNode2 leaf3 = CreateSemanticsNode(leaf3_id, "leaf 3");
429429

430430
bridge->AddFlutterSemanticsNodeUpdate(root);
431431
bridge->AddFlutterSemanticsNodeUpdate(intermediary1);
@@ -508,13 +508,13 @@ TEST(AccessibilityBridgeTest, CanReparentNodeWithChild) {
508508

509509
std::vector<int32_t> root_children{intermediary1_id, intermediary2_id};
510510
std::vector<int32_t> intermediary1_children{leaf1_id};
511-
FlutterSemanticsNode root =
511+
FlutterSemanticsNode2 root =
512512
CreateSemanticsNode(root_id, "root", &root_children);
513-
FlutterSemanticsNode intermediary1 = CreateSemanticsNode(
513+
FlutterSemanticsNode2 intermediary1 = CreateSemanticsNode(
514514
intermediary1_id, "intermediary 1", &intermediary1_children);
515-
FlutterSemanticsNode intermediary2 =
515+
FlutterSemanticsNode2 intermediary2 =
516516
CreateSemanticsNode(intermediary2_id, "intermediary 2");
517-
FlutterSemanticsNode leaf1 = CreateSemanticsNode(leaf1_id, "leaf 1");
517+
FlutterSemanticsNode2 leaf1 = CreateSemanticsNode(leaf1_id, "leaf 1");
518518

519519
bridge->AddFlutterSemanticsNodeUpdate(root);
520520
bridge->AddFlutterSemanticsNodeUpdate(intermediary1);
@@ -593,7 +593,7 @@ TEST(AccessibilityBridgeTest, LineBreakingObjectTest) {
593593

594594
const int32_t root_id = 0;
595595

596-
FlutterSemanticsNode root = CreateSemanticsNode(root_id, "root", {});
596+
FlutterSemanticsNode2 root = CreateSemanticsNode(root_id, "root", {});
597597

598598
bridge->AddFlutterSemanticsNodeUpdate(root);
599599
bridge->CommitUpdates();

0 commit comments

Comments
 (0)