[embedder] Update dependencies - fix clash with font_init commit in sync script

Change-Id: I74ecb6c5893c031241f724828f230132bbedb457
Reviewed-on: https://fuchsia-review.googlesource.com/c/flutter-embedder/+/764062
Reviewed-by: Alexander Biggs <akbiggs@google.com>
diff --git a/scripts/sync_engine_to_revision.sh b/scripts/sync_engine_to_revision.sh
index dd98810..13cd3e2 100755
--- a/scripts/sync_engine_to_revision.sh
+++ b/scripts/sync_engine_to_revision.sh
@@ -76,7 +76,7 @@
 acquire_software_surface_fix=dadf7a7b06b60f36fdce66759bfd74c01d74e27b
 get_engine_fix "akbiggs" "${acquire_software_surface_fix}" "to get API for acquiring software surface..."
 
-font_initialization_data_fix=2aa6de94a2d16a50982b0b8ab5a09fa4bc0443b5
+font_initialization_data_fix=cda78f5a1cc254f01494d11b01f86ab920cd918d
 get_engine_fix "naudzghebre" "${font_initialization_data_fix}" "to get API change to embedder.h for setting font_initialization_data.."
 
 async_msg_loop_fix=1275e614f23b46b5a77f39563b73acd038309428
diff --git a/src/embedder/engine/debug_x64/libflutter_engine.so b/src/embedder/engine/debug_x64/libflutter_engine.so
index 486854e..242e0f5 100755
--- a/src/embedder/engine/debug_x64/libflutter_engine.so
+++ b/src/embedder/engine/debug_x64/libflutter_engine.so
Binary files differ
diff --git a/src/embedder/engine/embedder.h b/src/embedder/engine/embedder.h
index 34cf5ca..9523038 100644
--- a/src/embedder/engine/embedder.h
+++ b/src/embedder/engine/embedder.h
@@ -453,7 +453,9 @@
 /// This information is passed to the embedder when requesting a frame buffer
 /// object.
 ///
-/// See: \ref FlutterOpenGLRendererConfig.fbo_with_frame_info_callback.
+/// See: \ref FlutterOpenGLRendererConfig.fbo_with_frame_info_callback,
+/// \ref FlutterMetalRendererConfig.get_next_drawable_callback,
+/// and \ref FlutterVulkanRendererConfig.get_next_image_callback.
 typedef struct {
   /// The size of this struct. Must be sizeof(FlutterFrameInfo).
   size_t struct_size;
@@ -638,6 +640,8 @@
   int64_t texture_id;
   /// Handle to the MTLTexture that is owned by the embedder. Engine will render
   /// the frame into this texture.
+  ///
+  /// A NULL texture is considered invalid.
   FlutterMetalTextureHandle texture;
   /// A baton that is not interpreted by the engine in any way. It will be given
   /// back to the embedder in the destruction callback below. Embedder resources
@@ -1039,7 +1043,8 @@
 typedef int64_t FlutterPlatformViewIdentifier;
 
 /// `FlutterSemanticsNode` ID used as a sentinel to signal the end of a batch of
-/// semantics node updates.
+/// semantics node updates. This is unused if using
+/// `FlutterUpdateSemanticsCallback`.
 FLUTTER_EXPORT
 extern const int32_t kFlutterSemanticsNodeIdBatchEnd;
 
@@ -1048,7 +1053,7 @@
 /// The semantics tree is maintained during the semantics phase of the pipeline
 /// (i.e., during PipelineOwner.flushSemantics), which happens after
 /// compositing. Updates are then pushed to embedders via the registered
-/// `FlutterUpdateSemanticsNodeCallback`.
+/// `FlutterUpdateSemanticsCallback`.
 typedef struct {
   /// The size of this struct. Must be sizeof(FlutterSemanticsNode).
   size_t struct_size;
@@ -1117,7 +1122,8 @@
 } FlutterSemanticsNode;
 
 /// `FlutterSemanticsCustomAction` ID used as a sentinel to signal the end of a
-/// batch of semantics custom action updates.
+/// batch of semantics custom action updates. This is unused if using
+/// `FlutterUpdateSemanticsCallback`.
 FLUTTER_EXPORT
 extern const int32_t kFlutterSemanticsCustomActionIdBatchEnd;
 
@@ -1144,6 +1150,20 @@
   const char* hint;
 } FlutterSemanticsCustomAction;
 
+/// A batch of updates to semantics nodes and custom actions.
+typedef struct {
+  /// The size of the struct. Must be sizeof(FlutterSemanticsUpdate).
+  size_t struct_size;
+  /// The number of semantics node updates.
+  size_t nodes_count;
+  // Array of semantics nodes. Has length `nodes_count`.
+  FlutterSemanticsNode* nodes;
+  /// The number of semantics custom action updates.
+  size_t custom_actions_count;
+  /// Array of semantics custom actions. Has length `custom_actions_count`.
+  FlutterSemanticsCustomAction* custom_actions;
+} FlutterSemanticsUpdate;
+
 typedef void (*FlutterUpdateSemanticsNodeCallback)(
     const FlutterSemanticsNode* /* semantics node */,
     void* /* user data */);
@@ -1152,6 +1172,10 @@
     const FlutterSemanticsCustomAction* /* semantics custom action */,
     void* /* user data */);
 
+typedef void (*FlutterUpdateSemanticsCallback)(
+    const FlutterSemanticsUpdate* /* semantics update */,
+    void* /* user data*/);
+
 typedef struct _FlutterTaskRunner* FlutterTaskRunner;
 
 typedef struct {
@@ -1747,24 +1771,32 @@
   /// The callback invoked by the engine in root isolate scope. Called
   /// immediately after the root isolate has been created and marked runnable.
   VoidCallback root_isolate_create_callback;
-  /// The callback invoked by the engine in order to give the embedder the
-  /// chance to respond to semantics node updates from the Dart application.
+  /// The legacy callback invoked by the engine in order to give the embedder
+  /// the chance to respond to semantics node updates from the Dart application.
   /// Semantics node updates are sent in batches terminated by a 'batch end'
   /// callback that is passed a sentinel `FlutterSemanticsNode` whose `id` field
   /// has the value `kFlutterSemanticsNodeIdBatchEnd`.
   ///
   /// The callback will be invoked on the thread on which the `FlutterEngineRun`
   /// call is made.
+  ///
+  /// @deprecated    Prefer using `update_semantics_callback` instead. If this
+  ///                calback is provided, `update_semantics_callback` must not
+  ///                be provided.
   FlutterUpdateSemanticsNodeCallback update_semantics_node_callback;
-  /// The callback invoked by the engine in order to give the embedder the
-  /// chance to respond to updates to semantics custom actions from the Dart
-  /// application.  Custom action updates are sent in batches terminated by a
+  /// The legacy callback invoked by the engine in order to give the embedder
+  /// the chance to respond to updates to semantics custom actions from the Dart
+  /// application. Custom action updates are sent in batches terminated by a
   /// 'batch end' callback that is passed a sentinel
   /// `FlutterSemanticsCustomAction` whose `id` field has the value
   /// `kFlutterSemanticsCustomActionIdBatchEnd`.
   ///
   /// The callback will be invoked on the thread on which the `FlutterEngineRun`
   /// call is made.
+  ///
+  /// @deprecated    Prefer using `update_semantics_callback` instead. If this
+  ///                calback is provided, `update_semantics_callback` must not
+  ///                be provided.
   FlutterUpdateSemanticsCustomActionCallback
       update_semantics_custom_action_callback;
   /// Path to a directory used to store data that is cached across runs of a
@@ -1902,6 +1934,17 @@
   // The first argument is the `user_data` from `FlutterEngineInitialize`.
   OnPreEngineRestartCallback on_pre_engine_restart_callback;
 
+  /// The callback invoked by the engine in order to give the embedder the
+  /// chance to respond to updates to semantics nodes and custom actions from
+  /// the Dart application.
+  ///
+  /// The callback will be invoked on the thread on which the `FlutterEngineRun`
+  /// call is made.
+  ///
+  /// If this callback is provided, update_semantics_node_callback and
+  /// update_semantics_custom_action_callback must not be provided.
+  FlutterUpdateSemanticsCallback update_semantics_callback;
+
   // Data set by platform-specific embedders for use in font initialization.
   uint32_t font_initialization_data;
 } FlutterProjectArgs;
@@ -2245,8 +2288,8 @@
 /// @param[in]  engine     A running engine instance.
 /// @param[in]  enabled    When enabled, changes to the semantic contents of the
 ///                        window are sent via the
-///                        `FlutterUpdateSemanticsNodeCallback` registered to
-///                        `update_semantics_node_callback` in
+///                        `FlutterUpdateSemanticsCallback` registered to
+///                        `update_semantics_callback` in
 ///                        `FlutterProjectArgs`.
 ///
 /// @return     The result of the call.
diff --git a/src/embedder/engine/engine_revision b/src/embedder/engine/engine_revision
index 9bcd2e5..cc4db5e 100644
--- a/src/embedder/engine/engine_revision
+++ b/src/embedder/engine/engine_revision
@@ -1 +1 @@
-0075e10bc4b31999086abaa15322da5952a47c30
+8dd8e092e43f1c3051239f0cf2b01e8caeca6b49
diff --git a/third_party/dart-pkg/internal/flutter/flutter b/third_party/dart-pkg/internal/flutter/flutter
index 378387b..2921ca0 160000
--- a/third_party/dart-pkg/internal/flutter/flutter
+++ b/third_party/dart-pkg/internal/flutter/flutter
@@ -1 +1 @@
-Subproject commit 378387b139386a0c1e089c85a8e0bcd769dcfe47
+Subproject commit 2921ca0c482401e557ebb20d16180e2e14e47ee9
diff --git a/third_party/depot_tools b/third_party/depot_tools
index 9d351f8..30e3ce8 160000
--- a/third_party/depot_tools
+++ b/third_party/depot_tools
@@ -1 +1 @@
-Subproject commit 9d351f8b5aa6d0362eae0c6d32b4e9b6ef3207bf
+Subproject commit 30e3ce8b1c670be00c4957fe773ffb8ff986ed8f
diff --git a/third_party/sdk-integration b/third_party/sdk-integration
index 06aac3c..5956f5f 160000
--- a/third_party/sdk-integration
+++ b/third_party/sdk-integration
@@ -1 +1 @@
-Subproject commit 06aac3ccee1234ecb661accb85ae6a106e2dfb8a
+Subproject commit 5956f5f770fa73f62949bc1429b1575403db9064