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

Commit c076baa

Browse files
authored
Revert "Android Background Platform Channels (#29147)" (#29344)
This reverts commit 67c8f20.
1 parent 716e106 commit c076baa

35 files changed

+182
-832
lines changed

ci/licenses_golden/licenses_flutter

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,6 @@ FILE: ../../../flutter/shell/common/persistent_cache_unittests.cc
708708
FILE: ../../../flutter/shell/common/pipeline.cc
709709
FILE: ../../../flutter/shell/common/pipeline.h
710710
FILE: ../../../flutter/shell/common/pipeline_unittests.cc
711-
FILE: ../../../flutter/shell/common/platform_message_handler.h
712711
FILE: ../../../flutter/shell/common/platform_view.cc
713712
FILE: ../../../flutter/shell/common/platform_view.h
714713
FILE: ../../../flutter/shell/common/pointer_data_dispatcher.cc
@@ -842,7 +841,6 @@ FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/Flutte
842841
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartExecutor.java
843842
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/DartMessenger.java
844843
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformMessageHandler.java
845-
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/dart/PlatformTaskQueue.java
846844
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/DeferredComponentManager.java
847845
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java
848846
FILE: ../../../flutter/shell/platform/android/io/flutter/embedding/engine/loader/ApplicationInfoLoader.java
@@ -940,8 +938,6 @@ FILE: ../../../flutter/shell/platform/android/jni/jni_mock_unittest.cc
940938
FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.cc
941939
FILE: ../../../flutter/shell/platform/android/jni/platform_view_android_jni.h
942940
FILE: ../../../flutter/shell/platform/android/library_loader.cc
943-
FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.cc
944-
FILE: ../../../flutter/shell/platform/android/platform_message_handler_android.h
945941
FILE: ../../../flutter/shell/platform/android/platform_message_response_android.cc
946942
FILE: ../../../flutter/shell/platform/android/platform_message_response_android.h
947943
FILE: ../../../flutter/shell/platform/android/platform_view_android.cc

shell/common/BUILD.gn

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ source_set("common") {
7373
"engine.h",
7474
"pipeline.cc",
7575
"pipeline.h",
76-
"platform_message_handler.h",
7776
"platform_view.cc",
7877
"platform_view.h",
7978
"pointer_data_dispatcher.cc",

shell/common/platform_message_handler.h

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

shell/common/platform_view.cc

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,4 @@ PlatformView::CreateSnapshotSurfaceProducer() {
184184
return nullptr;
185185
}
186186

187-
std::shared_ptr<PlatformMessageHandler>
188-
PlatformView::GetPlatformMessageHandler() const {
189-
return nullptr;
190-
}
191-
192187
} // namespace flutter

shell/common/platform_view.h

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
#include "flutter/lib/ui/window/pointer_data_packet.h"
2323
#include "flutter/lib/ui/window/pointer_data_packet_converter.h"
2424
#include "flutter/lib/ui/window/viewport_metrics.h"
25-
#include "flutter/shell/common/platform_message_handler.h"
2625
#include "flutter/shell/common/pointer_data_dispatcher.h"
2726
#include "flutter/shell/common/vsync_waiter.h"
2827
#include "third_party/skia/include/core/SkSize.h"
@@ -811,17 +810,6 @@ class PlatformView {
811810
virtual std::unique_ptr<SnapshotSurfaceProducer>
812811
CreateSnapshotSurfaceProducer();
813812

814-
//--------------------------------------------------------------------------
815-
/// @brief Specifies a delegate that will receive PlatformMessages from
816-
/// Flutter to the host platform.
817-
///
818-
/// @details If this returns `null` that means PlatformMessages should be sent
819-
/// to the PlatformView. That is to protect legacy behavior, any embedder
820-
/// that wants to support executing Platform Channel handlers on background
821-
/// threads should be returing a thread-safe PlatformMessageHandler instead.
822-
virtual std::shared_ptr<PlatformMessageHandler> GetPlatformMessageHandler()
823-
const;
824-
825813
protected:
826814
PlatformView::Delegate& delegate_;
827815
const TaskRunners task_runners_;

shell/common/shell.cc

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,6 @@ bool Shell::Setup(std::unique_ptr<PlatformView> platform_view,
625625
}
626626

627627
platform_view_ = std::move(platform_view);
628-
platform_message_handler_ = platform_view_->GetPlatformMessageHandler();
629628
engine_ = std::move(engine);
630629
rasterizer_ = std::move(rasterizer);
631630
io_manager_ = std::move(io_manager);
@@ -1193,17 +1192,13 @@ void Shell::OnEngineHandlePlatformMessage(
11931192
return;
11941193
}
11951194

1196-
if (platform_message_handler_) {
1197-
platform_message_handler_->HandlePlatformMessage(std::move(message));
1198-
} else {
1199-
task_runners_.GetPlatformTaskRunner()->PostTask(
1200-
fml::MakeCopyable([view = platform_view_->GetWeakPtr(),
1201-
message = std::move(message)]() mutable {
1202-
if (view) {
1203-
view->HandlePlatformMessage(std::move(message));
1204-
}
1205-
}));
1206-
}
1195+
task_runners_.GetPlatformTaskRunner()->PostTask(
1196+
fml::MakeCopyable([view = platform_view_->GetWeakPtr(),
1197+
message = std::move(message)]() mutable {
1198+
if (view) {
1199+
view->HandlePlatformMessage(std::move(message));
1200+
}
1201+
}));
12071202
}
12081203

12091204
void Shell::HandleEngineSkiaMessage(std::unique_ptr<PlatformMessage> message) {
@@ -1872,9 +1867,4 @@ fml::TimePoint Shell::GetCurrentTimePoint() {
18721867
return fml::TimePoint::Now();
18731868
}
18741869

1875-
const std::shared_ptr<PlatformMessageHandler>&
1876-
Shell::GetPlatformMessageHandler() const {
1877-
return platform_message_handler_;
1878-
}
1879-
18801870
} // namespace flutter

shell/common/shell.h

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -395,12 +395,6 @@ class Shell final : public PlatformView::Delegate,
395395
/// @see `CreateCompatibleGenerator`
396396
void RegisterImageDecoder(ImageGeneratorFactory factory, int32_t priority);
397397

398-
//----------------------------------------------------------------------------
399-
/// @brief Returns the delegate object that handles PlatformMessage's from
400-
/// Flutter to the host platform (and its responses).
401-
const std::shared_ptr<PlatformMessageHandler>& GetPlatformMessageHandler()
402-
const;
403-
404398
private:
405399
using ServiceProtocolHandler =
406400
std::function<bool(const ServiceProtocol::Handler::ServiceProtocolMap&,
@@ -418,7 +412,6 @@ class Shell final : public PlatformView::Delegate,
418412
std::unique_ptr<ShellIOManager> io_manager_; // on IO task runner
419413
std::shared_ptr<fml::SyncSwitch> is_gpu_disabled_sync_switch_;
420414
std::shared_ptr<VolatilePathTracker> volatile_path_tracker_;
421-
std::shared_ptr<PlatformMessageHandler> platform_message_handler_;
422415

423416
fml::WeakPtr<Engine> weak_engine_; // to be shared across threads
424417
fml::TaskRunnerAffineWeakPtr<Rasterizer>

shell/common/shell_test.cc

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,7 @@ std::unique_ptr<Shell> ShellTest::CreateShell(
325325
std::shared_ptr<ShellTestExternalViewEmbedder>
326326
shell_test_external_view_embedder,
327327
bool is_gpu_disabled,
328-
ShellTestPlatformView::BackendType rendering_backend,
329-
Shell::CreateCallback<PlatformView> platform_view_create_callback) {
328+
ShellTestPlatformView::BackendType rendering_backend) {
330329
const auto vsync_clock = std::make_shared<ShellTestVsyncClock>();
331330

332331
CreateVsyncWaiter create_vsync_waiter = [&]() {
@@ -339,29 +338,29 @@ std::unique_ptr<Shell> ShellTest::CreateShell(
339338
}
340339
};
341340

342-
if (!platform_view_create_callback) {
343-
platform_view_create_callback = [vsync_clock, //
344-
&create_vsync_waiter, //
345-
shell_test_external_view_embedder, //
346-
rendering_backend //
347-
](Shell& shell) {
348-
return ShellTestPlatformView::Create(shell, //
349-
shell.GetTaskRunners(), //
350-
vsync_clock, //
351-
std::move(create_vsync_waiter), //
352-
rendering_backend, //
353-
shell_test_external_view_embedder //
354-
);
355-
};
356-
}
341+
Shell::CreateCallback<PlatformView> platfrom_view_create_callback =
342+
[vsync_clock, //
343+
&create_vsync_waiter, //
344+
shell_test_external_view_embedder, //
345+
rendering_backend //
346+
](Shell& shell) {
347+
return ShellTestPlatformView::Create(
348+
shell, //
349+
shell.GetTaskRunners(), //
350+
vsync_clock, //
351+
std::move(create_vsync_waiter), //
352+
rendering_backend, //
353+
shell_test_external_view_embedder //
354+
);
355+
};
357356

358357
Shell::CreateCallback<Rasterizer> rasterizer_create_callback =
359358
[](Shell& shell) { return std::make_unique<Rasterizer>(shell); };
360359

361360
return Shell::Create(flutter::PlatformData(), //
362361
task_runners, //
363362
settings, //
364-
platform_view_create_callback, //
363+
platfrom_view_create_callback, //
365364
rasterizer_create_callback, //
366365
is_gpu_disabled //
367366
);

shell/common/shell_test.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,7 @@ class ShellTest : public FixtureTest {
4343
shell_test_external_view_embedder = nullptr,
4444
bool is_gpu_disabled = false,
4545
ShellTestPlatformView::BackendType rendering_backend =
46-
ShellTestPlatformView::BackendType::kDefaultBackend,
47-
Shell::CreateCallback<PlatformView> platform_view_create_callback =
48-
nullptr);
46+
ShellTestPlatformView::BackendType::kDefaultBackend);
4947
void DestroyShell(std::unique_ptr<Shell> shell);
5048
void DestroyShell(std::unique_ptr<Shell> shell, TaskRunners task_runners);
5149
TaskRunners GetTaskRunnersForFixture();

shell/common/shell_unittests.cc

Lines changed: 0 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@
4545

4646
namespace flutter {
4747
namespace testing {
48-
49-
using ::testing::_;
50-
using ::testing::Return;
51-
5248
namespace {
5349
class MockPlatformViewDelegate : public PlatformView::Delegate {
5450
MOCK_METHOD1(OnPlatformViewCreated, void(std::unique_ptr<Surface> surface));
@@ -123,27 +119,6 @@ class MockPlatformView : public PlatformView {
123119
MockPlatformView(MockPlatformViewDelegate& delegate, TaskRunners task_runners)
124120
: PlatformView(delegate, task_runners) {}
125121
MOCK_METHOD0(CreateRenderingSurface, std::unique_ptr<Surface>());
126-
MOCK_CONST_METHOD0(GetPlatformMessageHandler,
127-
std::shared_ptr<PlatformMessageHandler>());
128-
};
129-
130-
class MockPlatformMessageHandler : public PlatformMessageHandler {
131-
public:
132-
MOCK_METHOD1(HandlePlatformMessage,
133-
void(std::unique_ptr<PlatformMessage> message));
134-
MOCK_METHOD2(InvokePlatformMessageResponseCallback,
135-
void(int response_id, std::unique_ptr<fml::Mapping> mapping));
136-
MOCK_METHOD1(InvokePlatformMessageEmptyResponseCallback,
137-
void(int response_id));
138-
};
139-
140-
class MockPlatformMessageResponse : public PlatformMessageResponse {
141-
public:
142-
static fml::RefPtr<MockPlatformMessageResponse> Create() {
143-
return fml::AdoptRef(new MockPlatformMessageResponse());
144-
}
145-
MOCK_METHOD1(Complete, void(std::unique_ptr<fml::Mapping> data));
146-
MOCK_METHOD0(CompleteEmpty, void());
147122
};
148123
} // namespace
149124

@@ -3187,52 +3162,7 @@ TEST_F(ShellTest, UIWorkAfterOnPlatformViewDestroyed) {
31873162
shell->GetTaskRunners().GetUITaskRunner(),
31883163
[&ui_flush_latch]() { ui_flush_latch.Signal(); });
31893164
ui_flush_latch.Wait();
3190-
DestroyShell(std::move(shell));
3191-
}
31923165

3193-
TEST_F(ShellTest, UsesPlatformMessageHandler) {
3194-
TaskRunners task_runners = GetTaskRunnersForFixture();
3195-
auto settings = CreateSettingsForFixture();
3196-
MockPlatformViewDelegate platform_view_delegate;
3197-
auto platform_message_handler =
3198-
std::make_shared<MockPlatformMessageHandler>();
3199-
int message_id = 1;
3200-
EXPECT_CALL(*platform_message_handler, HandlePlatformMessage(_));
3201-
EXPECT_CALL(*platform_message_handler,
3202-
InvokePlatformMessageEmptyResponseCallback(message_id));
3203-
Shell::CreateCallback<PlatformView> platform_view_create_callback =
3204-
[&platform_view_delegate, task_runners,
3205-
platform_message_handler](flutter::Shell& shell) {
3206-
auto result = std::make_unique<MockPlatformView>(platform_view_delegate,
3207-
task_runners);
3208-
EXPECT_CALL(*result, GetPlatformMessageHandler())
3209-
.WillOnce(Return(platform_message_handler));
3210-
return result;
3211-
};
3212-
auto shell = CreateShell(
3213-
/*settings=*/std::move(settings),
3214-
/*task_runners=*/task_runners,
3215-
/*simulate_vsync=*/false,
3216-
/*shell_test_external_view_embedder=*/nullptr,
3217-
/*is_gpu_disabled=*/false,
3218-
/*rendering_backend=*/
3219-
ShellTestPlatformView::BackendType::kDefaultBackend,
3220-
/*platform_view_create_callback=*/platform_view_create_callback);
3221-
3222-
EXPECT_EQ(platform_message_handler, shell->GetPlatformMessageHandler());
3223-
PostSync(task_runners.GetUITaskRunner(), [&shell]() {
3224-
size_t data_size = 4;
3225-
fml::MallocMapping bytes =
3226-
fml::MallocMapping(static_cast<uint8_t*>(malloc(data_size)), data_size);
3227-
fml::RefPtr<MockPlatformMessageResponse> response =
3228-
MockPlatformMessageResponse::Create();
3229-
auto message = std::make_unique<PlatformMessage>(
3230-
/*channel=*/"foo", /*data=*/std::move(bytes), /*response=*/response);
3231-
(static_cast<Engine::Delegate*>(shell.get()))
3232-
->OnEngineHandlePlatformMessage(std::move(message));
3233-
});
3234-
shell->GetPlatformMessageHandler()
3235-
->InvokePlatformMessageEmptyResponseCallback(message_id);
32363166
DestroyShell(std::move(shell));
32373167
}
32383168

shell/platform/android/BUILD.gn

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ source_set("flutter_shell_native_src") {
7979
"flutter_main.cc",
8080
"flutter_main.h",
8181
"library_loader.cc",
82-
"platform_message_handler_android.cc",
83-
"platform_message_handler_android.h",
8482
"platform_message_response_android.cc",
8583
"platform_message_response_android.h",
8684
"platform_view_android.cc",
@@ -188,7 +186,6 @@ android_java_sources = [
188186
"io/flutter/embedding/engine/dart/DartExecutor.java",
189187
"io/flutter/embedding/engine/dart/DartMessenger.java",
190188
"io/flutter/embedding/engine/dart/PlatformMessageHandler.java",
191-
"io/flutter/embedding/engine/dart/PlatformTaskQueue.java",
192189
"io/flutter/embedding/engine/deferredcomponents/DeferredComponentManager.java",
193190
"io/flutter/embedding/engine/deferredcomponents/PlayStoreDeferredComponentManager.java",
194191
"io/flutter/embedding/engine/loader/ApplicationInfoLoader.java",

shell/platform/android/android_shell_holder.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
#include "flutter/shell/common/shell.h"
1717
#include "flutter/shell/common/thread_host.h"
1818
#include "flutter/shell/platform/android/jni/platform_view_android_jni.h"
19-
#include "flutter/shell/platform/android/platform_message_handler_android.h"
2019
#include "flutter/shell/platform/android/platform_view_android.h"
2120

2221
namespace flutter {
@@ -97,11 +96,6 @@ class AndroidShellHolder {
9796

9897
void NotifyLowMemoryWarning();
9998

100-
const std::shared_ptr<PlatformMessageHandler>& GetPlatformMessageHandler()
101-
const {
102-
return shell_->GetPlatformMessageHandler();
103-
}
104-
10599
private:
106100
const flutter::Settings settings_;
107101
const std::shared_ptr<PlatformViewAndroidJNI> jni_facade_;

0 commit comments

Comments
 (0)