From 49b2401dfeb60c7272b2e54f16ea30e68831dd93 Mon Sep 17 00:00:00 2001 From: Ian Hickson Date: Thu, 24 Sep 2020 18:19:53 -0700 Subject: [PATCH] Revert "Make drain() consistently asynchronous. (#21062)" (flutter/engine#21391) This reverts commit 7a237c9b68fc5fc2813c732d316e9cde5a932def. --- .../src/flutter/lib/ui/channel_buffers.dart | 4 --- .../web_ui/lib/src/ui/channel_buffers.dart | 1 - .../testing/dart/channel_buffers_test.dart | 28 ------------------- 3 files changed, 33 deletions(-) diff --git a/engine/src/flutter/lib/ui/channel_buffers.dart b/engine/src/flutter/lib/ui/channel_buffers.dart index 5dd5289160f..a32a557e1f1 100644 --- a/engine/src/flutter/lib/ui/channel_buffers.dart +++ b/engine/src/flutter/lib/ui/channel_buffers.dart @@ -181,11 +181,7 @@ class ChannelBuffers { /// /// This should be called once a channel is prepared to handle messages /// (i.e. when a message handler is setup in the framework). - /// - /// The messages are processed by calling the given `callback`. Each message - /// is processed in its own microtask. Future drain(String channel, DrainChannelCallback callback) async { - await null; // Ensures that the rest of this method is scheduled in a microtask. while (!_isEmpty(channel)) { final _StoredMessage message = _pop(channel)!; await callback(message.data, message.callback); diff --git a/engine/src/flutter/lib/web_ui/lib/src/ui/channel_buffers.dart b/engine/src/flutter/lib/web_ui/lib/src/ui/channel_buffers.dart index ed1e16ce1e6..9ecb59a4b72 100644 --- a/engine/src/flutter/lib/web_ui/lib/src/ui/channel_buffers.dart +++ b/engine/src/flutter/lib/web_ui/lib/src/ui/channel_buffers.dart @@ -119,7 +119,6 @@ class ChannelBuffers { } Future drain(String channel, DrainChannelCallback callback) async { - await null; // Ensures that the rest of this method is scheduled in a microtask. while (!_isEmpty(channel)) { final _StoredMessage message = _pop(channel)!; await callback(message.data, message.callback); diff --git a/engine/src/flutter/testing/dart/channel_buffers_test.dart b/engine/src/flutter/testing/dart/channel_buffers_test.dart index 6fc7d328c6a..a6d0152015a 100644 --- a/engine/src/flutter/testing/dart/channel_buffers_test.dart +++ b/engine/src/flutter/testing/dart/channel_buffers_test.dart @@ -3,8 +3,6 @@ // found in the LICENSE file. // @dart = 2.6 - -import 'dart:async'; import 'dart:convert'; import 'dart:typed_data'; import 'dart:ui' as ui; @@ -36,32 +34,6 @@ void main() { }); }); - test('drain is async', () async { - const String channel = 'foo'; - final ByteData data = _makeByteData('message'); - final ui.ChannelBuffers buffers = ui.ChannelBuffers(); - final ui.PlatformMessageResponseCallback callback = (ByteData responseData) {}; - buffers.push(channel, data, callback); - final List log = []; - final Completer completer = Completer(); - scheduleMicrotask(() { log.add('before drain, microtask'); }); - log.add('before drain'); - buffers.drain(channel, (ByteData drainedData, ui.PlatformMessageResponseCallback drainedCallback) async { - log.add('callback'); - completer.complete(); - }); - log.add('after drain, before await'); - await completer.future; - log.add('after await'); - expect(log, [ - 'before drain', - 'after drain, before await', - 'before drain, microtask', - 'callback', - 'after await' - ]); - }); - test('push drain zero', () async { const String channel = 'foo'; final ByteData data = _makeByteData('bar');