[flutter_releases] Revert "Pushing BackdropFilter Mutator (#34355)" (#35543) (#35659)

This reverts commit 3ec9f21b22e3ce7fcc6cd32b1876f193c4a5bf3a.

Co-authored-by: Zachary Anderson <zanderso@users.noreply.github.com>
diff --git a/flow/embedded_views.h b/flow/embedded_views.h
index cc252ae..1839a8a 100644
--- a/flow/embedded_views.h
+++ b/flow/embedded_views.h
@@ -248,11 +248,6 @@
   // Clippings are ignored.
   const SkRect& finalBoundingRect() const { return final_bounding_rect_; }
 
-  // Pushes the stored DlImageFilter object to the mutators stack.
-  void PushImageFilter(std::shared_ptr<const DlImageFilter> filter) {
-    mutators_stack_.PushBackdropFilter(filter);
-  }
-
   // Whether the embedder should construct DisplayList objects to hold the
   // rendering commands for each between-view slice of the layer tree.
   bool display_list_enabled() const { return display_list_enabled_; }
@@ -444,18 +439,6 @@
   // 'EndFrame', otherwise returns false.
   bool GetUsedThisFrame() const { return used_this_frame_; }
 
-  // Pushes the platform view id of a visited platform view to a list of
-  // visited platform views.
-  virtual void PushVisitedPlatformView(int64_t view_id) {}
-
-  // Pushes a DlImageFilter object to each platform view within a list of
-  // visited platform views.
-  //
-  // See also: |PushVisitedPlatformView| for pushing platform view ids to the
-  // visited platform views list.
-  virtual void PushFilterToVisitedPlatformViews(
-      std::shared_ptr<const DlImageFilter> filter) {}
-
  private:
   bool used_this_frame_ = false;
 
diff --git a/flow/layers/backdrop_filter_layer.cc b/flow/layers/backdrop_filter_layer.cc
index 9f67b74..d52ac78 100644
--- a/flow/layers/backdrop_filter_layer.cc
+++ b/flow/layers/backdrop_filter_layer.cc
@@ -43,9 +43,6 @@
                                   const SkMatrix& matrix) {
   Layer::AutoPrerollSaveLayerState save =
       Layer::AutoPrerollSaveLayerState::Create(context, true, bool(filter_));
-  if (context->view_embedder != nullptr) {
-    context->view_embedder->PushFilterToVisitedPlatformViews(filter_);
-  }
   SkRect child_paint_bounds = SkRect::MakeEmpty();
   PrerollChildren(context, matrix, &child_paint_bounds);
   child_paint_bounds.join(context->cull_rect);
diff --git a/flow/layers/platform_view_layer.cc b/flow/layers/platform_view_layer.cc
index a86886f..8a46cbb 100644
--- a/flow/layers/platform_view_layer.cc
+++ b/flow/layers/platform_view_layer.cc
@@ -29,7 +29,6 @@
                                            context->display_list_enabled);
   context->view_embedder->PrerollCompositeEmbeddedView(view_id_,
                                                        std::move(params));
-  context->view_embedder->PushVisitedPlatformView(view_id_);
 }
 
 void PlatformViewLayer::Paint(PaintContext& context) const {
diff --git a/flow/mutators_stack_unittests.cc b/flow/mutators_stack_unittests.cc
index c93838c..a460125 100644
--- a/flow/mutators_stack_unittests.cc
+++ b/flow/mutators_stack_unittests.cc
@@ -163,8 +163,6 @@
   stack.PushClipPath(path);
   int alpha = 240;
   stack.PushOpacity(alpha);
-  auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  stack.PushBackdropFilter(filter);
 
   MutatorsStack stackOther;
   SkMatrix matrixOther = SkMatrix::Scale(1, 1);
@@ -177,9 +175,6 @@
   stackOther.PushClipPath(otherPath);
   int otherAlpha = 240;
   stackOther.PushOpacity(otherAlpha);
-  auto otherFilter =
-      std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  stackOther.PushBackdropFilter(otherFilter);
 
   ASSERT_TRUE(stack == stackOther);
 }
@@ -209,11 +204,6 @@
   int alpha = 240;
   Mutator mutator5 = Mutator(alpha);
   ASSERT_TRUE(mutator5.GetType() == MutatorType::kOpacity);
-
-  auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  Mutator mutator6 = Mutator(filter);
-  ASSERT_TRUE(mutator6.GetType() == MutatorType::kBackdropFilter);
-  ASSERT_TRUE(mutator6.GetFilter() == *filter);
 }
 
 TEST(Mutator, CopyConstructor) {
@@ -242,11 +232,6 @@
   Mutator mutator5 = Mutator(alpha);
   Mutator copy5 = Mutator(mutator5);
   ASSERT_TRUE(mutator5 == copy5);
-
-  auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  Mutator mutator6 = Mutator(filter);
-  Mutator copy6 = Mutator(mutator6);
-  ASSERT_TRUE(mutator6 == copy6);
 }
 
 TEST(Mutator, Equality) {
@@ -275,11 +260,6 @@
   Mutator mutator5 = Mutator(alpha);
   Mutator otherMutator5 = Mutator(alpha);
   ASSERT_TRUE(mutator5 == otherMutator5);
-
-  auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  Mutator mutator6 = Mutator(filter);
-  Mutator otherMutator6 = Mutator(filter);
-  ASSERT_TRUE(mutator6 == otherMutator6);
 }
 
 TEST(Mutator, UnEquality) {
@@ -295,13 +275,6 @@
   Mutator mutator2 = Mutator(alpha);
   Mutator otherMutator2 = Mutator(alpha2);
   ASSERT_TRUE(mutator2 != otherMutator2);
-
-  auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-  auto filter2 =
-      std::make_shared<DlBlurImageFilter>(10, 10, DlTileMode::kClamp);
-  Mutator mutator3 = Mutator(filter);
-  Mutator otherMutator3 = Mutator(filter2);
-  ASSERT_TRUE(mutator3 != otherMutator3);
 }
 
 }  // namespace testing
diff --git a/shell/common/shell_test_external_view_embedder.cc b/shell/common/shell_test_external_view_embedder.cc
index 579f682..a366e6f 100644
--- a/shell/common/shell_test_external_view_embedder.cc
+++ b/shell/common/shell_test_external_view_embedder.cc
@@ -28,14 +28,6 @@
   return last_submitted_frame_size_;
 }
 
-std::vector<int64_t> ShellTestExternalViewEmbedder::GetVisitedPlatformViews() {
-  return visited_platform_views_;
-}
-
-MutatorsStack ShellTestExternalViewEmbedder::GetStack(int64_t view_id) {
-  return mutators_stacks_[view_id];
-}
-
 // |ExternalViewEmbedder|
 void ShellTestExternalViewEmbedder::CancelFrame() {}
 
@@ -49,16 +41,7 @@
 // |ExternalViewEmbedder|
 void ShellTestExternalViewEmbedder::PrerollCompositeEmbeddedView(
     int view_id,
-    std::unique_ptr<EmbeddedViewParams> params) {
-  SkRect view_bounds = SkRect::Make(frame_size_);
-  std::unique_ptr<EmbedderViewSlice> view;
-  if (params->display_list_enabled()) {
-    view = std::make_unique<DisplayListEmbedderViewSlice>(view_bounds);
-  } else {
-    view = std::make_unique<SkPictureEmbedderViewSlice>(view_bounds);
-  }
-  slices_.insert_or_assign(view_id, std::move(view));
-}
+    std::unique_ptr<EmbeddedViewParams> params) {}
 
 // |ExternalViewEmbedder|
 PostPrerollResult ShellTestExternalViewEmbedder::PostPrerollAction(
@@ -79,24 +62,9 @@
 }
 
 // |ExternalViewEmbedder|
-void ShellTestExternalViewEmbedder::PushVisitedPlatformView(int64_t view_id) {
-  visited_platform_views_.push_back(view_id);
-}
-
-// |ExternalViewEmbedder|
-void ShellTestExternalViewEmbedder::PushFilterToVisitedPlatformViews(
-    std::shared_ptr<const DlImageFilter> filter) {
-  for (int64_t id : visited_platform_views_) {
-    EmbeddedViewParams params = current_composition_params_[id];
-    params.PushImageFilter(filter);
-    current_composition_params_[id] = params;
-    mutators_stacks_[id] = params.mutatorsStack();
-  }
-}
-
 EmbedderPaintContext ShellTestExternalViewEmbedder::CompositeEmbeddedView(
     int view_id) {
-  return {slices_[view_id]->canvas(), slices_[view_id]->builder()};
+  return {nullptr, nullptr};
 }
 
 // |ExternalViewEmbedder|
diff --git a/shell/common/shell_test_external_view_embedder.h b/shell/common/shell_test_external_view_embedder.h
index 583a091..1bb70fd 100644
--- a/shell/common/shell_test_external_view_embedder.h
+++ b/shell/common/shell_test_external_view_embedder.h
@@ -7,7 +7,6 @@
 
 #include "flutter/flow/embedded_views.h"
 #include "flutter/fml/raster_thread_merger.h"
-#include "third_party/skia/include/core/SkPictureRecorder.h"
 
 namespace flutter {
 
@@ -33,15 +32,9 @@
   // the external view embedder.
   int GetSubmittedFrameCount();
 
-  // Returns the size of last submitted frame surface.
+  // Returns the size of last submitted frame surface
   SkISize GetLastSubmittedFrameSize();
 
-  // Returns the mutators stack for the given platform view.
-  MutatorsStack GetStack(int64_t);
-
-  // Returns the list of visited platform views.
-  std::vector<int64_t> GetVisitedPlatformViews();
-
  private:
   // |ExternalViewEmbedder|
   void CancelFrame() override;
@@ -72,13 +65,6 @@
   EmbedderPaintContext CompositeEmbeddedView(int view_id) override;
 
   // |ExternalViewEmbedder|
-  void PushVisitedPlatformView(int64_t view_id) override;
-
-  // |ExternalViewEmbedder|
-  void PushFilterToVisitedPlatformViews(
-      std::shared_ptr<const DlImageFilter> filter) override;
-
-  // |ExternalViewEmbedder|
   void SubmitFrame(GrDirectContext* context,
                    std::unique_ptr<SurfaceFrame> frame) override;
 
@@ -98,11 +84,7 @@
   PostPrerollResult post_preroll_result_;
 
   bool support_thread_merging_;
-  SkISize frame_size_;
-  std::map<int64_t, std::unique_ptr<EmbedderViewSlice>> slices_;
-  std::map<int64_t, MutatorsStack> mutators_stacks_;
-  std::map<int64_t, EmbeddedViewParams> current_composition_params_;
-  std::vector<int64_t> visited_platform_views_;
+
   std::atomic<int> submitted_frame_count_;
   std::atomic<SkISize> last_submitted_frame_size_;
 
diff --git a/shell/common/shell_unittests.cc b/shell/common/shell_unittests.cc
index 124dbf5..7bd244d 100644
--- a/shell/common/shell_unittests.cc
+++ b/shell/common/shell_unittests.cc
@@ -13,10 +13,8 @@
 
 #include "assets/directory_asset_bundle.h"
 #include "common/graphics/persistent_cache.h"
-#include "flutter/flow/layers/backdrop_filter_layer.h"
 #include "flutter/flow/layers/display_list_layer.h"
 #include "flutter/flow/layers/layer_raster_cache_item.h"
-#include "flutter/flow/layers/platform_view_layer.h"
 #include "flutter/flow/layers/transform_layer.h"
 #include "flutter/fml/command_line.h"
 #include "flutter/fml/dart/dart_converter.h"
@@ -767,66 +765,12 @@
 
   PumpOneFrame(shell.get(), 100, 100, builder);
   end_frame_latch.Wait();
+
   ASSERT_TRUE(end_frame_called);
 
   DestroyShell(std::move(shell));
 }
 
-TEST_F(ShellTest, PushBackdropFilterToVisitedPlatformViews) {
-  auto settings = CreateSettingsForFixture();
-  fml::AutoResetWaitableEvent end_frame_latch;
-  bool end_frame_called = false;
-  auto end_frame_callback =
-      [&](bool should_resubmit_frame,
-          fml::RefPtr<fml::RasterThreadMerger> raster_thread_merger) {
-        ASSERT_TRUE(raster_thread_merger.get() == nullptr);
-        ASSERT_FALSE(should_resubmit_frame);
-        end_frame_called = true;
-        end_frame_latch.Signal();
-      };
-  auto external_view_embedder = std::make_shared<ShellTestExternalViewEmbedder>(
-      end_frame_callback, PostPrerollResult::kResubmitFrame, false);
-  auto shell = CreateShell(std::move(settings), GetTaskRunnersForFixture(),
-                           false, external_view_embedder);
-
-  // Create the surface needed by rasterizer
-  PlatformViewNotifyCreated(shell.get());
-
-  auto configuration = RunConfiguration::InferFromSettings(settings);
-  configuration.SetEntrypoint("emptyMain");
-
-  RunEngine(shell.get(), std::move(configuration));
-
-  LayerTreeBuilder builder = [&](std::shared_ptr<ContainerLayer> root) {
-    auto platform_view_layer = std::make_shared<PlatformViewLayer>(
-        SkPoint::Make(10, 10), SkSize::Make(10, 10), 50);
-    root->Add(platform_view_layer);
-    auto filter = std::make_shared<DlBlurImageFilter>(5, 5, DlTileMode::kClamp);
-    auto backdrop_filter_layer =
-        std::make_shared<BackdropFilterLayer>(filter, DlBlendMode::kSrcOver);
-    root->Add(backdrop_filter_layer);
-    auto platform_view_layer2 = std::make_shared<PlatformViewLayer>(
-        SkPoint::Make(10, 10), SkSize::Make(10, 10), 75);
-    backdrop_filter_layer->Add(platform_view_layer2);
-  };
-
-  PumpOneFrame(shell.get(), 100, 100, builder);
-  end_frame_latch.Wait();
-  ASSERT_EQ(external_view_embedder->GetVisitedPlatformViews().size(),
-            (const unsigned long)2);
-  ASSERT_EQ(external_view_embedder->GetVisitedPlatformViews()[0], 50);
-  ASSERT_EQ(external_view_embedder->GetVisitedPlatformViews()[1], 75);
-  ASSERT_TRUE(external_view_embedder->GetStack(75).is_empty());
-  ASSERT_FALSE(external_view_embedder->GetStack(50).is_empty());
-
-  auto filter = DlBlurImageFilter(5, 5, DlTileMode::kClamp);
-  auto mutator = *external_view_embedder->GetStack(50).Begin();
-  ASSERT_EQ(mutator->GetType(), MutatorType::kBackdropFilter);
-  ASSERT_EQ(mutator->GetFilter(), filter);
-
-  DestroyShell(std::move(shell));
-}
-
 // TODO(https://github.com/flutter/flutter/issues/59816): Enable on fuchsia.
 TEST_F(ShellTest,
 #if defined(OS_FUCHSIA)
diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm
index 9987fe6..bea1225 100644
--- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm
+++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm
@@ -318,15 +318,6 @@
   }
 }
 
-void FlutterPlatformViewsController::PushFilterToVisitedPlatformViews(
-    std::shared_ptr<const DlImageFilter> filter) {
-  for (int64_t id : visited_platform_views_) {
-    EmbeddedViewParams params = current_composition_params_[id];
-    params.PushImageFilter(filter);
-    current_composition_params_[id] = params;
-  }
-}
-
 void FlutterPlatformViewsController::PrerollCompositeEmbeddedView(
     int view_id,
     std::unique_ptr<EmbeddedViewParams> params) {
diff --git a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h
index c7877dc..0a2e134 100644
--- a/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h
+++ b/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews_Internal.h
@@ -186,12 +186,6 @@
   // responder. Returns -1 if no such platform view is found.
   long FindFirstResponderPlatformViewId();
 
-  // Pushes backdrop filter mutation to the mutator stack of each visited platform view.
-  void PushFilterToVisitedPlatformViews(std::shared_ptr<const DlImageFilter> filter);
-
-  // Pushes the view id of a visted platform view to the list of visied platform views.
-  void PushVisitedPlatformView(int64_t view_id) { visited_platform_views_.push_back(view_id); }
-
  private:
   static const size_t kMaxLayerAllocations = 2;
 
@@ -299,9 +293,6 @@
   // The last ID in this vector belond to the that is composited on top of all others.
   std::vector<int64_t> composition_order_;
 
-  // A vector of visited platform view IDs.
-  std::vector<int64_t> visited_platform_views_;
-
   // The latest composition order that was presented in Present().
   std::vector<int64_t> active_composition_order_;
 
diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.h b/shell/platform/darwin/ios/ios_external_view_embedder.h
index 03cec91..3a5a0b3 100644
--- a/shell/platform/darwin/ios/ios_external_view_embedder.h
+++ b/shell/platform/darwin/ios/ios_external_view_embedder.h
@@ -67,13 +67,6 @@
   // |ExternalViewEmbedder|
   bool SupportsDynamicThreadMerging() override;
 
-  // |ExternalViewEmbedder|
-  void PushFilterToVisitedPlatformViews(
-      std::shared_ptr<const DlImageFilter> filter) override;
-
-  // |ExternalViewEmbedder|
-  void PushVisitedPlatformView(int64_t view_id) override;
-
   FML_DISALLOW_COPY_AND_ASSIGN(IOSExternalViewEmbedder);
 };
 
diff --git a/shell/platform/darwin/ios/ios_external_view_embedder.mm b/shell/platform/darwin/ios/ios_external_view_embedder.mm
index 76995be..e679833 100644
--- a/shell/platform/darwin/ios/ios_external_view_embedder.mm
+++ b/shell/platform/darwin/ios/ios_external_view_embedder.mm
@@ -98,15 +98,4 @@
   return true;
 }
 
-// |ExternalViewEmbedder|
-void IOSExternalViewEmbedder::PushFilterToVisitedPlatformViews(
-    std::shared_ptr<const DlImageFilter> filter) {
-  platform_views_controller_->PushFilterToVisitedPlatformViews(filter);
-}
-
-// |ExternalViewEmbedder|
-void IOSExternalViewEmbedder::PushVisitedPlatformView(int64_t view_id) {
-  platform_views_controller_->PushVisitedPlatformView(view_id);
-}
-
 }  // namespace flutter