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

Commit 5d742da

Browse files
author
Chris Yang
authored
Revert "Improve iOS PlatformViews to better handle thread merging. (#16935)"
This reverts commit f6b8eda.
1 parent 6245149 commit 5d742da

20 files changed

+31
-342
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,8 +592,6 @@ FILE: ../../../flutter/shell/common/shell_io_manager.cc
592592
FILE: ../../../flutter/shell/common/shell_io_manager.h
593593
FILE: ../../../flutter/shell/common/shell_test.cc
594594
FILE: ../../../flutter/shell/common/shell_test.h
595-
FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.cc
596-
FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.h
597595
FILE: ../../../flutter/shell/common/shell_test_platform_view.cc
598596
FILE: ../../../flutter/shell/common/shell_test_platform_view.h
599597
FILE: ../../../flutter/shell/common/shell_test_platform_view_gl.cc

flow/embedded_views.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -253,18 +253,6 @@ class ExternalViewEmbedder {
253253
// This is called after submitting the embedder frame and the surface frame.
254254
virtual void FinishFrame();
255255

256-
// This should only be called after |SubmitFrame|.
257-
// This method provides the embedder a way to do additional tasks after
258-
// |SubmitFrame|. After invoking this method, the current task on the
259-
// TaskRunner should end immediately.
260-
//
261-
// For example on the iOS embedder, threads are merged in this call.
262-
// A new frame on the platform thread starts immediately. If the GPU thread
263-
// still has some task running, there could be two frames being rendered
264-
// concurrently, which causes undefined behaviors.
265-
virtual void EndFrame(
266-
fml::RefPtr<fml::RasterThreadMerger> raster_thread_merger) {}
267-
268256
FML_DISALLOW_COPY_AND_ASSIGN(ExternalViewEmbedder);
269257

270258
}; // ExternalViewEmbedder

shell/common/BUILD.gn

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,6 @@ if (enable_unittests) {
191191
"pipeline_unittests.cc",
192192
"shell_test.cc",
193193
"shell_test.h",
194-
"shell_test_external_view_embedder.cc",
195-
"shell_test_external_view_embedder.h",
196194
"shell_test_platform_view.cc",
197195
"shell_test_platform_view.h",
198196
"shell_unittests.cc",

shell/common/animator_unittests.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ TEST_F(ShellTest, VSyncTargetTime) {
5555
return ShellTestPlatformView::Create(
5656
shell, shell.GetTaskRunners(), vsync_clock,
5757
std::move(create_vsync_waiter),
58-
ShellTestPlatformView::BackendType::kDefaultBackend, nullptr);
58+
ShellTestPlatformView::BackendType::kDefaultBackend);
5959
},
6060
[](Shell& shell) {
6161
return std::make_unique<Rasterizer>(shell, shell.GetTaskRunners());

shell/common/rasterizer.cc

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -136,16 +136,6 @@ void Rasterizer::Draw(fml::RefPtr<Pipeline<flutter::LayerTree>> pipeline) {
136136
consume_result = PipelineConsumeResult::MoreAvailable;
137137
}
138138

139-
// Merging the thread as we know the next `Draw` should be run on the platform
140-
// thread.
141-
if (raster_status == RasterStatus::kResubmit) {
142-
auto* external_view_embedder = surface_->GetExternalViewEmbedder();
143-
// We know only the `external_view_embedder` can
144-
// causes|RasterStatus::kResubmit|. Check to make sure.
145-
FML_DCHECK(external_view_embedder != nullptr);
146-
external_view_embedder->EndFrame(raster_thread_merger_);
147-
}
148-
149139
// Consume as many pipeline items as possible. But yield the event loop
150140
// between successive tries.
151141
switch (consume_result) {

shell/common/shell_test.cc

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -260,12 +260,9 @@ std::unique_ptr<Shell> ShellTest::CreateShell(Settings settings,
260260
simulate_vsync);
261261
}
262262

263-
std::unique_ptr<Shell> ShellTest::CreateShell(
264-
Settings settings,
265-
TaskRunners task_runners,
266-
bool simulate_vsync,
267-
std::shared_ptr<ShellTestExternalViewEmbedder>
268-
shell_test_external_view_embedder) {
263+
std::unique_ptr<Shell> ShellTest::CreateShell(Settings settings,
264+
TaskRunners task_runners,
265+
bool simulate_vsync) {
269266
const auto vsync_clock = std::make_shared<ShellTestVsyncClock>();
270267
CreateVsyncWaiter create_vsync_waiter = [&]() {
271268
if (simulate_vsync) {
@@ -278,18 +275,17 @@ std::unique_ptr<Shell> ShellTest::CreateShell(
278275
};
279276
return Shell::Create(
280277
task_runners, settings,
281-
[vsync_clock, &create_vsync_waiter,
282-
shell_test_external_view_embedder](Shell& shell) {
278+
[vsync_clock, &create_vsync_waiter](Shell& shell) {
283279
return ShellTestPlatformView::Create(
284280
shell, shell.GetTaskRunners(), vsync_clock,
285281
std::move(create_vsync_waiter),
286-
ShellTestPlatformView::BackendType::kDefaultBackend,
287-
shell_test_external_view_embedder);
282+
ShellTestPlatformView::BackendType::kDefaultBackend);
288283
},
289284
[](Shell& shell) {
290285
return std::make_unique<Rasterizer>(shell, shell.GetTaskRunners());
291286
});
292287
}
288+
293289
void ShellTest::DestroyShell(std::unique_ptr<Shell> shell) {
294290
DestroyShell(std::move(shell), GetTaskRunnersForFixture());
295291
}

shell/common/shell_test.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include "flutter/lib/ui/window/platform_message.h"
1616
#include "flutter/shell/common/run_configuration.h"
1717
#include "flutter/shell/common/shell.h"
18-
#include "flutter/shell/common/shell_test_external_view_embedder.h"
1918
#include "flutter/shell/common/thread_host.h"
2019
#include "flutter/shell/common/vsync_waiters_test.h"
2120
#include "flutter/testing/elf_loader.h"
@@ -32,12 +31,9 @@ class ShellTest : public ThreadTest {
3231
Settings CreateSettingsForFixture();
3332
std::unique_ptr<Shell> CreateShell(Settings settings,
3433
bool simulate_vsync = false);
35-
std::unique_ptr<Shell> CreateShell(
36-
Settings settings,
37-
TaskRunners task_runners,
38-
bool simulate_vsync = false,
39-
std::shared_ptr<ShellTestExternalViewEmbedder>
40-
shell_test_external_view_embedder = nullptr);
34+
std::unique_ptr<Shell> CreateShell(Settings settings,
35+
TaskRunners task_runners,
36+
bool simulate_vsync = false);
4137
void DestroyShell(std::unique_ptr<Shell> shell);
4238
void DestroyShell(std::unique_ptr<Shell> shell, TaskRunners task_runners);
4339
TaskRunners GetTaskRunnersForFixture();

shell/common/shell_test_external_view_embedder.cc

Lines changed: 0 additions & 55 deletions
This file was deleted.

shell/common/shell_test_external_view_embedder.h

Lines changed: 0 additions & 72 deletions
This file was deleted.

shell/common/shell_test_platform_view.cc

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,20 @@ std::unique_ptr<ShellTestPlatformView> ShellTestPlatformView::Create(
1919
TaskRunners task_runners,
2020
std::shared_ptr<ShellTestVsyncClock> vsync_clock,
2121
CreateVsyncWaiter create_vsync_waiter,
22-
BackendType backend,
23-
std::shared_ptr<ShellTestExternalViewEmbedder>
24-
shell_test_external_view_embedder) {
22+
BackendType backend) {
2523
// TODO(gw280): https://github.com/flutter/flutter/issues/50298
2624
// Make this fully runtime configurable
2725
switch (backend) {
2826
case BackendType::kDefaultBackend:
2927
#ifdef SHELL_ENABLE_GL
3028
case BackendType::kGLBackend:
3129
return std::make_unique<ShellTestPlatformViewGL>(
32-
delegate, task_runners, vsync_clock, create_vsync_waiter,
33-
shell_test_external_view_embedder);
30+
delegate, task_runners, vsync_clock, create_vsync_waiter);
3431
#endif // SHELL_ENABLE_GL
3532
#ifdef SHELL_ENABLE_VULKAN
3633
case BackendType::kVulkanBackend:
3734
return std::make_unique<ShellTestPlatformViewVulkan>(
38-
delegate, task_runners, vsync_clock, create_vsync_waiter,
39-
shell_test_external_view_embedder);
35+
delegate, task_runners, vsync_clock, create_vsync_waiter);
4036
#endif // SHELL_ENABLE_VULKAN
4137
default:
4238
FML_LOG(FATAL) << "No backends supported for ShellTestPlatformView";

0 commit comments

Comments
 (0)