[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