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

Commit 93d587c

Browse files
author
Chris Yang
authored
Revert "Reland "Improve iOS PlatformViews to better handle thread merging. #16935" (#17609)"
This reverts commit 68fd833.
1 parent 1c8ee98 commit 93d587c

20 files changed

+31
-345
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,8 +600,6 @@ FILE: ../../../flutter/shell/common/shell_io_manager.cc
600600
FILE: ../../../flutter/shell/common/shell_io_manager.h
601601
FILE: ../../../flutter/shell/common/shell_test.cc
602602
FILE: ../../../flutter/shell/common/shell_test.h
603-
FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.cc
604-
FILE: ../../../flutter/shell/common/shell_test_external_view_embedder.h
605603
FILE: ../../../flutter/shell/common/shell_test_platform_view.cc
606604
FILE: ../../../flutter/shell/common/shell_test_platform_view.h
607605
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
@@ -197,8 +197,6 @@ if (enable_unittests) {
197197
"renderer_context_test.h",
198198
"shell_test.cc",
199199
"shell_test.h",
200-
"shell_test_external_view_embedder.cc",
201-
"shell_test_external_view_embedder.h",
202200
"shell_test_platform_view.cc",
203201
"shell_test_platform_view.h",
204202
"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
@@ -140,16 +140,6 @@ void Rasterizer::Draw(fml::RefPtr<Pipeline<flutter::LayerTree>> pipeline) {
140140
consume_result = PipelineConsumeResult::MoreAvailable;
141141
}
142142

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

shell/common/shell_test.cc

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

274-
std::unique_ptr<Shell> ShellTest::CreateShell(
275-
Settings settings,
276-
TaskRunners task_runners,
277-
bool simulate_vsync,
278-
std::shared_ptr<ShellTestExternalViewEmbedder>
279-
shell_test_external_view_embedder) {
274+
std::unique_ptr<Shell> ShellTest::CreateShell(Settings settings,
275+
TaskRunners task_runners,
276+
bool simulate_vsync) {
280277
const auto vsync_clock = std::make_shared<ShellTestVsyncClock>();
281278
CreateVsyncWaiter create_vsync_waiter = [&]() {
282279
if (simulate_vsync) {
@@ -289,18 +286,17 @@ std::unique_ptr<Shell> ShellTest::CreateShell(
289286
};
290287
return Shell::Create(
291288
task_runners, settings,
292-
[vsync_clock, &create_vsync_waiter,
293-
shell_test_external_view_embedder](Shell& shell) {
289+
[vsync_clock, &create_vsync_waiter](Shell& shell) {
294290
return ShellTestPlatformView::Create(
295291
shell, shell.GetTaskRunners(), vsync_clock,
296292
std::move(create_vsync_waiter),
297-
ShellTestPlatformView::BackendType::kDefaultBackend,
298-
shell_test_external_view_embedder);
293+
ShellTestPlatformView::BackendType::kDefaultBackend);
299294
},
300295
[](Shell& shell) {
301296
return std::make_unique<Rasterizer>(shell, shell.GetTaskRunners());
302297
});
303298
}
299+
304300
void ShellTest::DestroyShell(std::unique_ptr<Shell> shell) {
305301
DestroyShell(std::move(shell), GetTaskRunnersForFixture());
306302
}

shell/common/shell_test.h

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "flutter/shell/common/persistent_cache.h"
1717
#include "flutter/shell/common/run_configuration.h"
1818
#include "flutter/shell/common/shell.h"
19-
#include "flutter/shell/common/shell_test_external_view_embedder.h"
2019
#include "flutter/shell/common/thread_host.h"
2120
#include "flutter/shell/common/vsync_waiters_test.h"
2221
#include "flutter/testing/elf_loader.h"
@@ -33,12 +32,9 @@ class ShellTest : public ThreadTest {
3332
Settings CreateSettingsForFixture();
3433
std::unique_ptr<Shell> CreateShell(Settings settings,
3534
bool simulate_vsync = false);
36-
std::unique_ptr<Shell> CreateShell(
37-
Settings settings,
38-
TaskRunners task_runners,
39-
bool simulate_vsync = false,
40-
std::shared_ptr<ShellTestExternalViewEmbedder>
41-
shell_test_external_view_embedder = nullptr);
35+
std::unique_ptr<Shell> CreateShell(Settings settings,
36+
TaskRunners task_runners,
37+
bool simulate_vsync = false);
4238
void DestroyShell(std::unique_ptr<Shell> shell);
4339
void DestroyShell(std::unique_ptr<Shell> shell, TaskRunners task_runners);
4440
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)